4

アプリケーションで使用しているjQueryプラグインには画像への直接参照があるため、アセットのフィンガープリントをオフにしようとしています。

そのため、production.rbを設定config.assets.digest = falseしましたが、現在、画像参照はまったく機能していません。/assets/foo.png空白の応答を返すだけです。

jQueryプラグインのコードを変更したり、erbイメージヘルパーを追加したりしたくはありませんが、他に何をすべきかわかりません。そして率直に言って、画像のアセットフィンガープリントは、その価値よりもはるかに厄介なようです。

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

ありがとう!

4

2 に答える 2

3

誰かがこの目的のために宝石を作りました:

https://github.com/spohlenz/digestion

アセット パイプラインは、Rails 3.1 の優れた新しいコンポーネントです。ただし、フィンガープリンティングと呼ばれる機能があり、多くの一般的な JavaScript ライブラリ (TinyMCE、CKEditor、FancyZoom など) をアセット パイプラインに適切に組み込むことができません。

この gem は、アセット パイプラインにパッチを適用して、特定のファイルまたはパスのフィンガープリント機能を無効にすることで、これらのライブラリを使用できるようにします。

于 2011-10-20T13:34:25.593 に答える
1

ckeditor のような大規模なプラグインを使用している場合、唯一の現実的なオプションは、そのプラグインをパブリック ディレクトリに移動することです。

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

パイプラインはそれだけの価値があります。本番環境でダイジェストを使用しないと、それを使用する意味がまったくなくなります。つまり、アセットがどこかにキャッシュされるように、遠い将来のヘッダーを設定するということです。

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

于 2011-09-12T01:18:47.380 に答える