我一直在试图弄清楚为什么我的生产配置仍会只显示“非摘要”网址。如果我在本地运行RAILS_ENV =生产rails,那么URL的工作就好了。但是一旦我投入生产,URL就会显示出来,而不是摘要。
//s3.amazonaws.com/xxxx/stylesheets/application.css
这是我的生产配置:
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = false
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
# Generate digests for assets URLs.
config.assets.digest = true
config.action_controller.asset_host = "//s3.amazonaws.com/xxxxx"
config.assets.prefix = "/production/assets"
我是否错过了URL指向已编译的摘要网址的触发器?
另一个问题参考,同样的问题(刚刚找到它)。 Rails 4.0.3 generating incorrect asset paths with asset_sync
答案 0 :(得分:0)
希望这将有助于拯救我的程序员朋友们一些头疼:D。我在" digest_path & asset_digest_path not allowing digest URLs"上回答了这个问题。但会在这里重新发布它,这样可以节省一些点击次数。
我正在将文件上传到S3,我没有意识到清单没有被Rails加载。您可以正确设置所有生产设置(如上面和其他线程),但如果您没有Rails可读的manifest.json文件,它仍会生成/ javascript / *(示例)网址。
我仍然遇到multi_json
gem的最新版本的问题,因此我将其降级为1.7.8并且工作正常。
gem 'multi_json', '1.7.8'
这样就可以读取manifest.json
创建的rake assets:precompile
文件。
关于这个sprockets线程https://github.com/rails/sprockets-rails/issues/107关于你的清单文件是应该在git中还是仅在部署脚本上存在争论,做最适合你的事情,只需确保它在以下内容中找到:
/public/assets/manifest.json
或用
指定config.assets.manifest = '...'
可能会或可能不会被删除。
干杯!