Функции 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 не компилируются для производства

twitter bootstrap выпадают внезапно не работает


проверьте свою продукцию.файл 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 и здесь.


обновление звездочек работало для меня:bundle update sprockets


Если вы уже пробовали heroku run rake assets:precompile и JS все еще не работает, попробуйте сделать heroku restart для перезапуска сервера после предварительной компиляции ресурсов.