1

我想知道是否有人可以看到我的asset_sync 配置有任何问题,当上传到我的存储桶时,正在上传原始版本和 md5-hash 版本,而不仅仅是散列版本,这是正确的吗?

Using: Manifest /tmp/build_9c7add81-9978-4a01-b46b-f9a4c5ef032e/public/assets/manifest.yml
   Overwriting matching file assets/arrow-left-06560809407b138d1da196208f851494.png with custom headers {:cache_control=>"max-age=31536000", :expires=>"Tue, 16 Jun 2015 10:16:23 GMT"}
   Uploading: assets/arrow-left-06560809407b138d1da196208f851494.png
   Overwriting matching file assets/arrow-right-ae6596cd5b8613bc8dc71cac6851f769.png with custom headers {:cache_control=>"max-age=31536000", :expires=>"Tue, 16 Jun 2015 10:16:23 GMT"}

此外,当尝试调用资产时,它调用的是原始文件名而不是 md5 哈希,所以

<img src="http://mybucket.s3.amazonaws.com/assets/slider/img-6.jpg">

代替

<img src="http://mybucket.s3.amazonaws.com/assets/slider/img-6-06560809407b138d1da196208f851494.jpg">

我的初始化程序看起来像这样

if defined?(AssetSync)
AssetSync.configure do |config|
  config.fog_provider = ENV['FOG_PROVIDER']
  config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID']
  config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
  config.fog_directory = ENV['FOG_DIRECTORY']
  config.fog_region = ENV['FOG_REGION']


 config.existing_remote_files = "delete"
 config.gzip_compression = true
 config.manifest = true
 config.custom_headers = { '.*' => { cache_control: 'max-age=31536000', expires: 1.year.from_now.httpdate } }
 end
 end

当我部署到 heroku rake:assets 预编译运行时,但我也在本地运行,所以想知道,y manifest.yml 文件是否不正确?我可以删除这个并创建一个新的吗?

如果需要更多信息,请告诉我

谢谢

编辑

所以我找到了创建原始文件和指纹资产的原因

“Rails 3 默认编译一次生成指纹资产,一次生成非指纹资产(指纹资产在文件名中有 MD5 哈希)。

您可以使用 turbo-sprockets-rails3 gem 从一个编译中创建两者。

在 Rails 4 中,此功能被提取到 sprockets-rails gem 中并且行为发生了变化,因此在 Rails 4 中不会发生双重编译。”

在这个阶段,虽然我仍然不知道为什么没有调用指纹资产

4

0 回答 0