【发布时间】:2013-08-23 14:20:09
【问题描述】:
我正在运行 Rails 3.1.3,其中包含 Sprockets 2.0.3 作为依赖项。
我将我的暂存环境设置为按照 Rails 指南建议的生产方式进行配置。
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
我已包含在我的 Capfile 中
load 'deploy'
load 'deploy/assets'
资产在部署时按预期进行预编译。
在 public/assets 中,我按预期找到了带有指纹的资产。
application-bd402855d34fb61e0a1690da06f79f20.js
application-bd402855d34fb61e0a1690da06f79f20.js.gz
application-ed3f9a8d23992790841c11b6692fb576.css
application-ed3f9a8d23992790841c11b6692fb576.css.gz
...and a bunch of images...
当我加载页面时,我会看到正确的引用、指纹和所有内容。
<link href="/assets/application-ed3f9a8d23992790841c11b6692fb576.css" media="screen" rel="stylesheet" type="text/css">
<script src="/assets/application-bd402855d34fb61e0a1690da06f79f20.js" type="text/javascript"></script>
然而,404s、css、js、图片,应有尽有。
有人知道这里的交易是什么吗?谢谢!
【问题讨论】:
-
您是作为“生产”运行 staging 还是有 staging.rb 配置文件?如果是这样,您可能没有正确的管道选项。
-
Staging 是使用上面的配置选项设置的,这与 Rails 指南建议的生产环境相同。我想要几乎相同的行为。不对吗?
-
应该没问题。我会再考虑一下...
-
我在生产模式下也有同样的问题。使用完全相同版本的 rails ruby 和 sprocket 在本地进行测试。
-
您是否尝试过在预编译之前执行 rake assets:clean ?您的登台环境应该与您的生产环境相同,因为这是登台的全部意义所在。
标签: ruby-on-rails asset-pipeline production staging sprockets