Функции Javascript работают на localhost, но не при развертывании в Heroku
Я заметил, что когда я развертываю в Heroku, функции javascript не работают (например, Bootstrap Popover, Buttons и т.д.). Я работаю с рельсами 3.2.2, ruby 1.9.3. Функции работают на localhost. По-видимому, при развертывании в Heroku не отображаются ошибки (функции просто не отображаются).
Любые идеи? Спасибо!
Ответы
Ответ 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
, чтобы перезагрузить сервер после предварительной компиляции активов.