ハッシュ化されたバージョンだけでなく、元のバージョンと md5-hash バージョンがアップロードされているバケットにアップロードするときに、asset_sync 構成に問題があることを誰かが確認できるかどうか疑問に思っていましたが、これは正しいですか?
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 にデプロイするとプリコンパイルが実行されますが、ローカルでも実行されているので、manifest.yml ファイルが正しくないのでしょうか? これを削除して新しいものを作成できますか?
さらに情報が必要な場合は、お知らせください
ありがとう
編集
それで、元のファイルと指紋のアセットが作成される理由を見つけました
「Rails 3 はデフォルトで、フィンガープリント化されたアセットを生成するために 1 回コンパイルされ、フィンガープリント化されていないアセットを生成するために 1 回コンパイルされます (フィンガープリント化されたものは、ファイル名に MD5 ハッシュが含まれています)。
Turbo-sprockets-rails3 gem を使用して、1 つのコンパイルから両方を作成できます。
Rails 4 では、この機能が sprockets-rails gem に抽出され、動作が変更されたため、Rails 4 では二重コンパイルは発生しません。」
この段階では、フィンガープリントされたアセットが呼び出されない理由はまだわかりません