4

MVC 4 Beta のバンドルと縮小を試していSystem.Web.Optimizationます。私が使用しているサイト304 (Not Modified)が更新時に を受け取ることを期待していました。

私の js バンドル/desktop-js-bundle?v=D33JhbMl9LHkXSPBj1tfRkRI0lHeYVmbSMQqD59bXHg1(そのバージョン #) に対する src のポイントは、サーバー上のバンドル内のファイルの 1 つが変更された場合にのみバージョン # が変更されることだと思いました。それでも、更新を押して Chrome の [ネットワーク] タブを監視するたびにF12、同じバージョン番号でリクエストが行われ、200ステータスが取得されます。

304 を返さないのはなぜですか?これにより、負荷が減少し、適切な量のパフォーマンスが向上します。ありがとう!

4

2 に答える 2

2

なぜ304を返さないのですか?

ヒットF5すると、ブラウザのキャッシュが期限切れになるためです。基本的にあなたのテストには欠陥があります。このバンドルへのリンクを別のページに配置する必要があります(<script>タグを使用)。次に、ハイパーリンクを使用してそれらのページに移動する必要があります。次に、Networkタブを確認します。

また、リリースモードで実行していることを確認してください。


アップデート:

OK、もう少し掘り下げた後、これが私が見つけたものです。200 HTTPステータスコードは実際に常に送信されますが、これは正常です。ただし、2回目にバンドルがキャッシュからフェッチされます。

これが最初のリクエストです:

ここに画像の説明を入力してください

この場合、バンドルはHTTPキャッシュ応答ヘッダーを持つサーバーからのものであることがわかります。

そして、これが2番目のリクエストです。

ここに画像の説明を入力してください

この2番目のスクリーンショットでは、バンドルがキャッシュから提供されていることがはっきりとわかります。線全体が灰色になっていることに注目してください。HTTP 200ステータスコードは架空のものです=>クライアントは、キャッシュからバンドルを直接取得するため、サーバーにHTTPリクエストを送信しません。

そして、私はグーグルクロームで同じことを観察することができます。

最初のリクエストの場合:

ここに画像の説明を入力してください

そして2番目のリクエストの場合:

ここに画像の説明を入力してください

于 2012-03-21T12:44:23.047 に答える
1

私は同じ問題を抱えていましたが、問題は Microsoft.AspNet.Web.Optimization パッケージにありました。http://aspnetoptimization.codeplex.com/workitem/127で説明されているように、バージョン 1.1.2 ~ 1.1.3 が影響を受けます。1.1.1 にダウングレードすると正常に動作し、更新後に変更されていないリソースに対して 304 が返されます。

次のコマンドを使用して、パッケージ マネージャー コンソールで実行できます。

PM> Uninstall-Package "Microsoft.AspNet.Web.Optimization"
PM> Install-Package "Microsoft.AspNet.Web.Optimization" -Version 1.1.1
于 2015-09-30T09:47:52.750 に答える