我想知道是否有人可以看到我的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 中不会发生双重编译。”
在这个阶段,虽然我仍然不知道为什么没有调用指纹资产