現在Webサイトのフロントエンドのパフォーマンス改善を行っています。
たまに使うGTmetrixというツールがあるのですが、そこに「Remove query strings from static resources」という評価項目があります。
Most proxies, most notably Squid up through version 3.0, do not cache resources with a "?" in their URL even if a Cache-control: public header is present in the response. To enable proxy caching for these resources, remove query strings from references to static resources, and instead encode the parameters into the file names themselves.
https://gtmetrix.com/remove-query-strings-from-static-resources.html
上の引用によると、クエリストリングがあるとプロキシがキャッシュしてくれないことがあるから、ブラウザキャッシュを防ぐならファイル名を変えてね、とのことです。
<link rel="stylesheet" type="text/css" src="/style.css?date=20151007">
確かにWebpackなどを使えばでJSのファイル名をビルドのたびに変えるということをすれば、実現できます。
しかしこのクエリストリングをつけることがそこまで悪いことだとは思いません。この評価項目は無視しようかと悩んでいます。
上のクエリストリングをcssの呼び出し等のあとにつけるのはよく行われていることだとは思いますが、GTmetrixには消せと言われ、しかも現在優先度が高くでているため、やや混乱しています。
体験したことがあまりないのでわからないのですが、Webのプロキシは現在も一般的に使われていて、Webのユーザーはそこでキャッシュされないために迷惑を被っているのでしょうか。JSやCSSなどの静的リソースにクエリストリングをつけてブラウザキャッシュを回避するのは本当にパフォーマンスに悪影響を及ぼしているのでしょうか?
またファイル名を変更のたびに変えるにしても、JSの場合はWebpackという解決策が思いつくのですが、CSSや画像ではどういうツールを使えばファイル名を毎回変更する運用が可能なのでしょうか。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/09 03:37
2015/10/09 03:48