似乎很多人都有类似的问题。我查阅了这个线程、这个和这篇文章等等。我发现了很多关于这些问题的主题,但发布的解决方案一直无法找到明确的解决方案。我目前正在使用 ruby 1.9.2 和 Heroku stack cedar 运行 rails 3.2.8。
我有两个主要的相关问题:
1) 我的项目正在将一些资产(不是全部)推送到 heroku。
根据其他线程中的建议,当我放置时:
config.assets.initialize_on_precompile = false
在我的 /config/application.rb 中,
config.serve_static_assets = true
config.assets.precompile += %w( *.js )
在 /config/environments/production.rb 中,以及
gem 'rails_12factor', group: :production
在我的 gemfile 中,推送将成功预编译,但是在 Heroku 上 application.js 文件为空:
2)在推送成功前预编译将JS放到Heroku上,但不再识别。
删除后
config.assets.precompile += %w( *.js )
来自 /config/production.rb,并运行
RAILS_ENV=production bundle exec rake assets:precompile
尽管 application.js 存在且非空,但index.html.erb 无法识别 JS 提交和推送结果如下所示:
我觉得好像我尝试了这些解决方案的所有组合都无济于事。我还没有将应用程序更新到 Rails 4,现在这样做是个好主意吗?
任何其他建议从这里去哪里?
奇怪的是,在我的另一个 Rails 3.2 应用程序中,我只在第一次访问时遇到类似的错误
页面加载后,只需点击刷新即可加载所有内容,错误就会消失。该应用程序的代码库中没有上述任何尝试过的解决方案。