CSS выглядит по-разному на героку
Как вы можете видеть на рисунках ниже, css на моем локальном веб-сайте размещается намного лучше, чем на герою.
У кого-нибудь был этот тип проблемы раньше. Вы можете увидеть его лучше всего на этой странице http://pltcpal.herokuapp.com/forums/
Я использую загрузку Twitter, которая рекомендует добавлять
`padding-top: 40px;`
если вы используете верхнюю панель навигации. Как-то он не работает...
![heroku]()
![local host]()
Ответы
Ответ 1
Проблема связана с обработкой конвейера активов на Heroku. Существует несколько способов решения этой проблемы, см. http://devcenter.heroku.com/articles/rails31_heroku_cedar
Я исправил проблему в своем приложении, предварительно компилируя активы локально на своей машине, а затем нажимаю их на Heroku.
Предварительно скомпилировать активы:
RAILS_ENV=production bundle exec rake assets:precompile
Добавить/скопировать изменения в репозиторий git:
git add public/assets
git commit -m "vendor compiled assets"
Чтобы быть в безопасности, я сначала проверил все это на локальной ветке на моей машине, которую я нажал на Heroku, используя следующую команду (Heroku обычно игнорирует все ветки, кроме основной ветки, т.е. трюк):
git push -f heroku heroku-assetpipeline:master
Ответ 2
FWIW, у меня была такая же проблема, и я проверял все, что мог, и те, что были выше. Оказалось, что я должен был увеличить масштаб в моем браузере, находясь на локальном хосте, и у меня было стандартное увеличение моего производственного URL.
Это было так же просто, как сбросить масштаб в моем браузере на обеих страницах. Надеюсь, это поможет кому-то еще с той же проблемой.
Ответ 3
У меня такая же проблема.
Когда я сравниваю код разработки и производства, происходит, что на машине разработки загружаются таблицы стилей и файлы javascript из загрузочного файла, в результате чего на производственном сайте (Heroku) имеется только одно приложение - XYZ.css и одно приложение - XYZ. JS.
Я не уверен, что это может быть проблемой с конвейером ресурса.
Возможно, кто-то подробно остановится на том, что нужно сделать (до) скомпилировать конвейер активов, чтобы развертывание на Heroku преуспело.
Ответ 4
Возможно ли, что вы предварительно скомпилировали свои активы локально в какой-то момент? Чтобы заставить heroku скомпилировать ваши ресурсы во время компиляции slug, вы можете переименовать свой public/assets/manifest.yml в public/assets/manifest.yml.bak, передать свой источник и нажать на герою.
Heroku предполагает, что вы скомпилировали свои ресурсы локально, когда он видит файл manifest.yml.
Ответ 5
У меня была такая же проблема, и я выполнял инструкции на нескольких разных страницах, включая документацию Heroku. Я размещаю здесь, чтобы помочь следующему парню, потому что, возможно, из-за изменений в Rails 4, Heroku или Github, но указанные выше направления для меня не работали. Однако я получил его, чтобы работать, и вот как.
Да, вы, вероятно, должны предварительно скомпоновать свои активы с помощью RAILS_ENV=production bundle exec rake assets:precompile
, но после этого перейдите в папку "public/assets" и скопируйте "все".css ',' css.gz ','.json ','.yml ','.js ', которые начинаются либо с приложения, либо из манифеста. Переместите их в папку за пределами каталогов приложений. Сделайте это просто, чтобы что-то пошло не так. Убедитесь, что все эти файлы удалены из папки "общедоступные/активы/" приложений. Затем перезапустите сервер локальных рельсов и убедитесь, что ваше приложение все еще ведет себя так, как вы его намереваетесь. Затем перейдите на свою учетную запись Github и зайдите в каталог "public/assets/" вашего репозитория и удалите все те же файлы, которые вы только что сделали локально. Затем добавьте/зафиксируйте локально, затем нажмите на git, затем на герою, а walla вы закончите, он должен работать.
Обоснование этого, я полагаю, состоит в том, что, когда вы нажимаете на Heroku, он проверяет скомпилированные активы в вашем репозитории, и из-за этого, хотя я предварительно скомпилировал его локально, он все еще тянул некоторые конфигурации активов от предыдущих коммитов. Удаляя эти файлы, Heroku должен скомпилировать их во время нажатия. Одна вещь, которую я не пытался, которая может работать, - это просто перейти на другую ветку и удалить эти файлы и развернуть эту ветку на Heroku, так что сначала вы можете попробовать это, но это то, что сработало для меня.
Еще одно замечание: переименование файлов в .bak или .old Heroku по-прежнему считалось их постоянными посетителями и отображало их, поскольку они были оригинальными, которые не отображались должным образом.