Ruby on Rails 3.1 では、次のディレクトリにいくつかの JPG があります。
assets/images/subdir1/subdir2/myimage.jpg
これらの画像は、Web サイトで JavaScript を介して動的に読み込まれます (img.src = "assets/subdir1/subdir2/myimage.jpg")。何らかの理由で、それらは本番環境でキャッシュされず、代わりに cache-control: no-cache で提供されています。
これらの画像が確実にキャッシュされるようにするにはどうすればよいですか?
私の production.rb ファイルには、次のようなものがあります。
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += ['jquery-1.8.3.min.js', 'json2.min.js']
そのコメントに基づいて、画像は既にキャッシュされていると考えました。
詳細を編集してください:
JavaScriptは私が書いたカスタムJSです。基本的に、Ruby on Rails ディレクトリにビルドしてコピーするカスタム JS プロジェクトがあります。このカスタム JS 内で、img.src = "mydomain.com/assets/subdir1/subdir2/myimage.png"; のようなことを行います。これは機能しますが、イメージは RoR によってキャッシュされません。subdir1 で再帰的に見つかったすべての画像がキャッシュ可能であることを RoR に伝える方法があるでしょうか? – ジェフは今編集
別の編集:
ファイルを提供する独自のハンドラーを作成して、キャッシュする必要があると言うことができるでしょうか?
または、フォルダーに特別な構成ファイルを配置します (Apache サーバーの .htaccess など?)
確かにこれを行う方法はあります...