Функции Javascript работают на localhost, но не при развертывании в Heroku
Я заметил, что при развертывании в Heroku функции javascript не работают (например, Bootstrap Popover, Buttons и т. д.). Я работаю с rails 3.2.2, ruby 1.9.3. Работает на localhost. При развертывании в Heroku ошибок не отображается (функции просто не отображаются).
какие идеи? Спасибо!
8 ответов
У меня также была аналогичная проблема, но проблема происходила и на localhost.
вы, вероятно, используете rails-bootstrap gem. Он устанавливает загрузочный файл.кофе.js этот файл был виновником. Так оно и было .использование popover и соответствующий плагин не были включены. Я прокомментировал это, поскольку я все равно не использовал его, но вы должны рассмотреть вопрос о включении плагина popover для bootstrap.
ручная предварительная компиляция работала для меня.
bundle exec rake assets:precompile
прежде чем нажать на heroku.
У меня была точно такая же проблема (я очень новичок в Rails). В конце концов я решил проблему, изменив порядок файлов в приложении.js:
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
для javascripts для работы в разработке "require jquery" должен быть после " require twitter / bootstrap."В производстве jquery должен был быть первым. Не уверен, что вызвало это, но теперь он работает при развертывании в Heroku.
я использовал эти два сообщения:
javascript - Twitter bootstrap Плагины jQuery не компилируются для производства
проверьте свою продукцию.файл rb. Я считаю, что строка должна быть:
config.assets.compile = true
Я считаю, что по умолчанию установлено значение false.
помните, что все, что вы обычно делаете на localhost, вы должны делать с Heroku. Убедитесь, что вы heroku run rake assets:precompile
.
проверил minified js для моего приложения, и popover был дважды в файле.
убедитесь, что только один из bootstrap
и boostrap-sprockets
объявляется в ваших активах javascript
документы:
bootstrap-звездочки и bootstrap не должны быть включены в приложение.js.
bootstrap-звездочки обеспечивают отдельные файлы Javascript Bootstrap (тревога.js или выпадающий список.js, например), в то время как bootstrap предоставляет конкатенированный файл, содержащий все загрузочные Javascripts.
убедитесь, что только одна из загрузочных и загрузочных звездочек
Refs:бутстреп-Сасс вопрос на GitHub и здесь.
Если вы уже пробовали heroku run rake assets:precompile
и JS все еще не работает, попробуйте сделать heroku restart
для перезапуска сервера после предварительной компиляции ресурсов.