JavaScript не работает на героку с рельсами 3.1 - PullRequest
2 голосов
/ 20 сентября 2011

Я перенес приложение rails 3.0 в 3.1 на Heroku.Он работает в стеке кедра, и все в порядке, за исключением того, что javascript приложения не будет работать.Файл application.js компилируется и выглядит так, как должен.Это доступно, перейдя на myapp.com/assets/application.js.Он просто не запускается!

Если я запускаю приложение локально, javascript работает, поэтому я подозреваю, что должна быть какая-то простая проблема конфигурации, которую я пропускаю.Вот мой файл production.rb:

FloridaBirdTrail::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # Code is not reloaded between requests
  config.cache_classes = true

  # Full error reports are disabled and caching is turned on
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = true

  # Compress JavaScripts and CSS
  config.assets.compress = true

  # Send deprecation notices to registered listeners
  config.active_support.deprecation = :notify
end

edit

Замена содержимого файла production.rb на файл development.rb позволил, по крайней мере, некоторым моим javascriptзапустить (gmap3 по какой-то причине не работает).Но какая из настроек имеет значение?

Ответы [ 5 ]

1 голос
/ 06 января 2013

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

bundle exec rake assets:precompile перед тем как пушить к героку.

1 голос
/ 21 сентября 2011

Откройте файл application.rb и убедитесь, что ваш запрос Bundler require выглядит следующим образом:

Bundler.require *Rails.groups(:assets)

По умолчанию это выглядит как

# If you precompile assets before deploying to production, use this line
Bundler.require *Rails.groups(:assets => %w(development test))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
0 голосов
/ 18 июня 2015

Я надеюсь, что вы провели локальную предварительную компиляцию ресурсов перед вашим последним толчком Heroku (как советовали в одном из ответов выше).Пожалуйста, проверьте, не блокирует ли ваша система выполнение JavaScripts.Для этого откройте консоль, пока вы находитесь в приложении Heroku, и проверьте наличие исключений.В случае, если вы видите исключения, связанные с блокировкой скриптов JavaScripts, это может быть проблемой.В моем случае произошло то же самое, и, к сожалению, я ничего не смог с этим поделать, поскольку у меня не было прав администратора.

0 голосов
/ 20 апреля 2012

У меня были некоторые проблемы с Javascript (на стороне сервера на Heroku, локально все было хорошо), которые исчезли, когда я * переместил весь мой Javascript в отдельный файл вместо application.js
* удалил require_tree из application.js и вместо этого вызвал каждый нужный мне javascript по имени
* удален bootstrap.js из папки app / assets / javascript

Я предполагаю, что компиляция как-то облажается.

0 голосов
/ 20 сентября 2011

Вы были уверены, что переключили Heroku в стек Cedar?Вот несколько документов по обновлению

http://devcenter.heroku.com/articles/rails31_heroku_cedar#upgrading_from_previous_rails_31_releases

http://devcenter.heroku.com/articles/cedar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...