4

私のアプリケーションで使用するjQueryプラグインはイメージへの直接参照を持っているため、アセットフィンガープリンティングをオフにしようとしています。Rails 3.1資産パイプライン - Herokuの画像資産の指紋をオフにしますか?

私はconfig.assets.digest = falseを私のproduction.rbに設定しましたが、私の画像参照はまったく動作しません。 /assets/foo.pngは空白の応答を返します。

私は本当にjQueryプラグインのコードを変更してerbイメージヘルパーを追加したくないのですが、何をすべきかわかりません。そして、率直に言って、画像の資産指紋は価値があるよりはるかに問題が多いようです。

誰もが洞察力を持っていますか?

ありがとうございます!

+0

資産を再プリコンパイルしましたか? 'rake assets:precompile'? – cailinanne

答えて

1

ckeditorのような大きなプラグインを使用している場合は、そのプラグインをパブリックディレクトリに移動する唯一の方法があります。

小さいプラグインでは、画像を正しいアセットパスに移動できます。たとえば、プラグインがimages/icon.jpgをプラグインフォルダの下に参照する場合は、app/assets/images/plugin_name/icon.pngのように移動してから<%= asset_tag('plugin_name/icon.png') %>というプラグインで参照する必要があります。

パイプラインはそれだけの価値があります。プロダクションでダイジェストを使用していない場合は、アセットがどこかにキャッシュされるように遠い将来のヘッダーを設定することは、まったく使用する点をほとんど否定します。

ダイジェストの削除時に設定されている場合は、アセットをプリコンパイルして(Sprocketsが将来のヘッダーを処理しないように)、サーバーにヘッダーが設定されていないことを確認する必要があります。

+0

私は、プラグインのイメージをパブリックディレクトリの自分のフォルダに移動しました。このようにして、他のすべての資産についてダイジェストを残すことができます。アセットパイプラインはCSSやJavascriptにとって非常に便利だと思いますが、私はまだ画像の有用性を確信していません。 –

+1

イメージの有用性 - 特にCSSのものや頻繁にアクセスされるもの - は、フィンガープリントを取得して、遠くの将来のヘッダーを設定することができます。すべてのページにある会社のロゴやCSS背景のスプライトを使用すると、これらはキャッシュされます。頻繁に訪れるビジターは、そのイメージをローカルまたはボーダーキャッシュにアクセスして、ダウンロードを保存し、ブラウジングエクスペリエンスを向上させる可能性があります。 –

3

誰かが、この目的のために宝石を作った:

https://github.com/spohlenz/digestion

資産パイプラインはRailsの3.1の偉大な新しいコンポーネントです。しかし、 には指紋として知られている機能があり、 は パイプラインに多くの一般的なJavaScriptライブラリ( TinyMCE、CKEditor、FancyZoomを含む)を正しく組み込むことができません。

特定のファイル またはパスに対してフィンガープリンティング機能を無効にすることにより、これらのライブラリを にするために、この宝石はアセットパイプラインにパッチを当てます。

+0

ああ、それは素晴らしい考えです。これについては後で見ていきます。ありがとう! –

+0

その宝石の機能がRailsに統合されました。 –

+0

@リチャード・ハルス:あなたは精緻化できますか? –

関連する問題