似乎很多人都有类似的问题。我参考了thread,this和这篇文章,以及其他。我已经找到了很多关于这些问题的主题,但发布的解决方案一直无法找到一个明确的解决方案。我目前运行的是rails 3.2.8和ruby 1.9.2,以及Heroku stack cedar。
我有两个主要的相关问题:
1)我的项目正在将一些资产(不是全部)推给heroku。#
根据其他线程的建议,当我放置:
config.assets.initialize_on_precompile = false
在my /config/application.rb中,
config.serve_static_assets = true
config.assets.precompile += %w( *.js )
在/config/environments/production.rb中,
gem 'rails_12factor', group: :production
在我的gem文件中,push将成功预编译,但是Heroku上的application.js文件为空:
2)推送前的预编译成功将JS放到Heroku上,但不再被识别。#
取出后
config.assets.precompile += %w( *.js )
从/config/production.rb,并运行
RAILS_ENV=production bundle exec rake assets:precompile
使用index.html.erb提交和推送结果**,尽管application.js存在且非空**,但无法识别JS,如下所示:
我觉得好像我已经尝试了所有这些解决方案的组合都无济于事。我还没有将应用程序更新到Rails 4,这是一个好主意吗?
还有其他建议吗?
奇怪的是,在我的另一个Rails3.2应用程序中,我只在第一次访问#时得到一个类似的错误
一旦页面加载,只需点击刷新加载所有内容,错误就会消失。此应用程序在其代码库中没有上述尝试的解决方案。
3条答案
按热度按时间z3yyvxxp1#
我也遇到了同样的问题,解决这个问题的方法是在gem文件中指定我的ruby版本。
rkue9o1l2#
没有答案,但这可能会有所帮助。我使用下面的选项进行预编译,这意味着只创建MD5版本,这帮助我修复了一些问题。
我也总是在预编译之前这样做:
另外,仔细检查html和heroku中文件名中的确切MD5名称。
fd3cxomn3#
我也是。当我将Rails版本从3.2.8更新到3.2.11时,它工作了!