私はLaravel 5.0を新しく導入していますが、PHPは新しくできません。私はElixirを使ってSASSをコンパイルし、自分のリソースディレクトリからイメージをコピーし、キャッシュを防ぐためにmix.version
関数を通して実行しました。SASSファイル内にリンクされているキャッシュ・バスト画像
これは、CSS、画像、JavaScriptには効果がありますが、私のCSS/SASSにリンクされた画像をElixirにキャッシュバストさせることは可能ですか?確かにイメージをバージョンアップするのは簡単ですが、新しいファイル名を反映するようにCSSを調整する方法はありますか?
私はこれを発見しました:https://github.com/trentearl/gulp-css-url-adjuster これにより、問題の半分が解決されるように、CSSファイル内のファイルパスにクエリパラメータを追加できるようになります。私は、gulpが実行されるたびにクエリパラメータを自動的に変更することが可能な場合、これを使用することは非常にうれしいでしょう。
どのようにこれを達成できるか、それが可能なのかどうかについてのご意見はありますか?
私はこれをやりたいのですが、私は常にアプリケーションを開発しています。しばしば再配置される大規模なスプライトシートを使用します。キャッシュの破棄が必要です。私は多くの時間と労力を要します。
おかげ
クエリ文字列を使用するのではなく、パスを変更してから、Webサーバー上のパスを書き換える方がよいでしょう。 – Hades
これはどのように優れていますか?ブラウザはクエリパラメータを別のURLとして扱います。パスを変更してサーバー経由で書き直すと、Sassだけでは達成できない複雑な複雑なレイヤーが生成されます。 – AJReading
クエリ文字列メソッドは、キャッシュ破棄のために最もよく受け入れられる方法ではなく、特定の状況では失敗する可能性があります。ブラウザによっては、別のファイルとして別のクエリ文字列が表示されない場合や、Squidがクエリ文字列でファイルをキャッシュしないソフトウェアがあります。また、クエリ文字列メソッドを使用することで、IISなどのWebサーバーがETagヘッダーを処理するのを防ぐことができます.Etagヘッダーは、有効期限のみに頼るのではなく、キャッシュの有効性をチェックできます。 – Hades