[Rails Asset Pipeline] image_urlは本番環境でダイジェストURLを生成しません



Image_url Does Not Generate Digested Url Production Environment



問題

# # =>

これは開発環境では正常ですが、サーバーにデプロイすると問題になります。

# Production Environment # =>

処理する

  1. 最初はウェブサイトに画像が表示されていないのを見ましたが、cssファイルとjsファイルがあります。digested url So asset pipeline設定は問題ありません。
  2. 次に、リソースのコンパイルが成功したかどうかを確認します。/path/to/rails_app/public/assets/ディレクトリの下にも処理済みの画像リソースがあります。次に、問題はimage_tag with image_urlメソッドにあります。
  3. image_url in ActionView::Helpers::AssetUrlHelperモジュールで定義ActionView::Baseクラスincludeモジュールなので、1つをインスタンス化できますActionView::Baseオブジェクト、これをテストするのに便利ですコンソール。サーバーでのRailsコンソールテストは、正しい名前を生成するためにサフィックス名を追加する必要があることを認識しています。digested url
> ActionView::Base.new.image_url('common_header') => '/images/common_header' > ActionView::Base.new.image_url('common_header.jpg') => '/assets/common_header-4187405b...32b.jpg'

解決

したがって、解決策は、image_url()メソッドを呼び出すすべてのパラメーターを、対応する画像ファイルのサフィックス名で変更することです。