4

サイトに対して YSlow を実行すると、「Configure ETags」項目で「F」が表示されます。私の画像、スタイルシートなどの多く(すべて?)にetagsがないと主張しています。

ただし、これらのイメージのいずれかでテストを直接実行すると、etag テストで A が得られます。さらに、Firebug Net パネルの応答ヘッダーで、フルページ バージョンと直接 URL バージョンの両方で、この項目の etag を確認できます。

この奇妙な動作を引き起こすために私がしていることはありますか?

(誰かが自分で確認したい場合は、私がヒットしている URL はここここにあります。混乱しているのは私のブラウザーだけであるかどうかを確認するための健全性チェックは気にしません。)

4

2 に答える 2

5

IIS 7 に関する私の答えは、YSlow の推奨事項を無視することです。

IIS 7 は、ETag の生成時にメタベース変更番号 0 を使用します。それはコロンの後の部分です...したがって、etagは常に「5321116d3585ce1:0」のようなものになります。最初の部分はファイルの最終変更時刻から生成され、次にコロンとメタベースの変更番号が生成されます。

IIS 7 以降、Microsoft はその変更番号を常にゼロに設定しているため、複数の Web サーバー間でも同じになります。IIS 5 および 6 では、同じ最終結果を得たい場合は、ゼロに設定できます。

http://technet.microsoft.com/en-us/library/ee619764(WS.10).aspx

YSlowがまだ iis_re = new RegExp("^[0-9a-z]+:[0-9a-z]+$");の正規表現ルールを使用している場合 :0で終わる場合、etag が有効であると受け入れるように書き換える必要があります。

于 2013-10-09T15:42:20.913 に答える
2

FF 3.6 と YSlow 2.0.3 (新しくリリースされたバージョン) でこれをローカルで試したところ、ETag の構成ミスを理由に、スタンドアロン イメージのスコアは "B" になりました。

ETag はヘッダーに表示され、FireBug ネット パネルと YSlow コンポーネント パネルに表示されます。

しかし、これは設計によるものです。http://developer.yahoo.com/performance/rules.html#etagsを見ると、IIS と Apache によって生成されたデフォルトの ETag が最適ではないことがわかります。

参考までに、YSlow の実際の lint ルールは、次の 2 つの正規表現をチェックします。

  apache_re = new RegExp("^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+$");
  iis_re = new RegExp("^[0-9a-z]+:[0-9a-z]+$");
于 2010-01-22T11:30:34.120 に答える