Подтвердить что ты не робот

Функции Javascript работают на localhost, но не при развертывании в Heroku

Я заметил, что когда я развертываю в Heroku, функции javascript не работают (например, Bootstrap Popover, Buttons и т.д.). Я работаю с рельсами 3.2.2, ruby ​​1.9.3. Функции работают на localhost. По-видимому, при развертывании в Heroku не отображаются ошибки (функции просто не отображаются).

Любые идеи? Спасибо!

4b9b3361

Ответ 1

У меня также была аналогичная проблема, но проблема также происходила на локальном хосте.

Вероятно, вы используете рельсы-бутстрап. Он устанавливает файл bootstrap.coffee.js Этот файл был виновником. У него было.поповерное использование и соответствующий плагин не был включен. Я прокомментировал это, поскольку я все равно не использовал его, но вы должны подумать о включении плагина popover для начальной загрузки.

Ответ 2

Ручная предварительная компиляция работала для меня.

bundle exec rake assets:precompile, прежде чем вы нажмете на герою.

Ответ 3

У меня была такая же проблема (я очень новичок в Rails). В конечном итоге я решил проблему, изменив порядок файлов в приложении application.js:

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap

Для того, чтобы javascripts работали в разработке, "require jquery" нужно было после "требовать twitter/bootstrap". В производстве, jquery нужно было прийти первым. Не знаете, что вызвало это, но теперь оно работает, когда оно развернуто в Хероку.

Я использовал эти два сообщения:

javascript - плагины jQuery для загрузки в бутстрап, не скомпилированные для производства

Твиттер bootstrap неожиданно не работает

Ответ 4

Проверьте файл production.rb. Я считаю, что строка должна быть:

config.assets.compile = true

Я считаю, что по умолчанию это значение установлено false.

Ответ 5

Помните, что все, что вы обычно делаете на localhost, вы должны делать с герокой. Убедитесь, что вы heroku run rake assets:precompile.

Ответ 6

Проверял мини-js для моего приложения, а popover был дважды в файле.

Убедитесь, что в ваших ресурсах javascript объявлен только один из bootstrap и boostrap-sprockets.

Из документов:

bootstrap-sprockets и bootstrap не должны быть включены в application.js.

bootstrap-sprockets предоставляет отдельные файлы Javascript Bootstrap (например, alert.js или dropdown.js), тогда как bootstrap предоставляет конкатенированный файл, содержащий все шаблоны Bootstrap Javascript.

Убедитесь, что только одна из бутстрапов и бутстрапов звездочек

Refs: проблема bootstrap-sass github и здесь.

Ответ 7

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