【发布时间】:2012-04-12 01:05:19
【问题描述】:
我在 Heroku 上使用 Rails 3.2.2 和 CDN (CloudFront) 来托管资产。
我尝试了使用 assets_sync gem 的 Heroku 教程 (https://devcenter.heroku.com/articles/cdn-asset-host-rails31)。
资产没有问题:预编译,我所有的资产都托管在我的 S3 存储桶上。
-->heroku run bundle exec rake assets:precompile 运行 bundle exec rake assets:precompile 附加到终端... up, run.1 AssetSync:使用内置初始化程序的默认配置 AssetSync:同步。 使用:清单 /app/public/assets/manifest.yml 上传:assets/facebook_64-8cdc90984860efef829203e1e01aab10.png 上传:assets/google_64-11634a6b4a219799449e7a7157f73387.png 上传:assets/twitter_64-657ee379209d0bb998440421b499a6a2.png 上传:assets/application-699d029330a2d095a9b59006a63a7b01.js 上传:assets/application-2060c0efc074ae11265455479abfb6ff.css 上传:assets/back_office-ccfdd79c9b296176087815c95607f540.css AssetSync:完成。问题是 Heroku 试图访问错误的 CSS 文件:
<link href="http://s3.amazonaws.com/annoncestest/assets/application-85cc4376a5de3b224db7c0548a44e7cb.css" media="all" rel="stylesheet" type="text/css" />
如您所见,应用程序 CSS 的 MD5 并不相同。
但是,JS 文件或其他不是 CSS 文件的资产没有问题。
在我的存储桶中,manifest.yml 引用了好文件application-2060c0efc074ae11265455479abfb6ff.css
但是 Heroku 总是尝试访问application-85cc4376a5de3b224db7c0548a44e7cb.css
我尝试在我的 production.rb 中设置清单路径:
config.assets.manifest = "http://myapp.cloudfront.net/assets"
要么
config.assets.manifest = "http://myapp.cloudfront.net/assets/manifest.yml"
每次css文件都是坏的。
我不知道有什么问题。有什么想法吗?
【问题讨论】:
标签: ruby-on-rails heroku asset-pipeline cdn assets