我正在尝试设置我的应用程序以通过 Amazon S3/Cloudfront CDN 提供资产。它是一个 rails 应用程序,我根据这个 heroku 文档asset_sync
使用gem 来实现这一点。
我将我的项目推到 heroku,然后运行一个heroku run rake assets:precompile
. 这给了我如下所示的输出:
I, [2013-09-20T21:19:06.506796 #2] INFO -- : Writing /app/public/assets/application-cb6347d3ce9380e02c37364b541fd8ae.js
I, [2013-09-20T21:19:19.979570 #2] INFO -- : Writing /app/public/assets/application-9dc3068c1bf9290c7eb0493fd36b3587.css
[WARNING] fog: followed redirect to abc123.s3-us-west-1.amazonaws.com, connecting to the matching region will be more performant
[WARNING] fog: followed redirect to abc123.s3-us-west-1.amazonaws.com, connecting to the matching region will be more performant
请注意,它为 JS 文件写入的哈希值cb6347d3ce9380e02c37364b541fd8ae.js
是正确的(因为我也在我的 localhost 下暂存运行它)。
但问题是,当我在 heroku 上点击我的应用程序并检查源代码时,它包含的 JS 与50460076f4c6eb614a44b6b17323efa7.js
之前编译的不同......
为什么 heroku 没有选择正确的预编译资产来使用?我在本地部署并执行了所有相同的步骤,我的本地服务器毫无问题地选择了正确的 JS。
谢谢你的帮助!