0

クライアントでの css ファイルのキャッシュに問題があるようです。私は通常、ファイルにバージョン番号を追加することで、これが問題を引き起こすのを防ぎます。

<link href="Default.css?4.31.0.17051" rel="stylesheet" type="text/css">

しかし、この状況ではこれは機能せず、その理由がわかりません。

バージョン番号は昨夜 から に増分され4.30.0.xxxxxました4.31.0.17051

一部のユーザーは、私自身も確認しましたが、HTTP 304 応答を受け取っています。奇妙なのは、IE 開発ツールを使用して検査すると、HTTP 304 が表示され、フィドラーを起動すると、リクエストがまったく表示されないことです。

サーバーでコンテンツのキャッシュが有効になっていません。

ctrl-f5 を実行した場合の HTTP ヘッダーは次のとおりです。

HTTP/1.1 200 OK
Content-Length: 45861
Content-Type: text/css
Last-Modified: Tue, 23 Jul 2013 14:19:40 GMT
Accept-Ranges: bytes
ETag: "0a61aabaf87ce1:bdba"
Vary: Accept-Encoding
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Tue, 30 Jul 2013 16:05:54 GMT

そう:

  • これがフィドラーに表示されないのはなぜですか?この質問が示唆するように、リクエストをまったく送信していませんか(https://stackoverflow.com/a/8958279/542251
  • このキャッシュ制御 (つまり?4.31.0.17051、ファイルへの追加) が機能しないのはなぜですか?

編集

日付を更新するためにファイルに触れましたLast-modifiedが、まだ要求していません。

そのため、ページは HTTP 200 を返しているため、これは以下で提案されているページ キャッシュではありません。

リクエスト:

GET http://www.mysite.com/Agent/Hotel HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://www.mysite.com/Agent/Flights
Accept-Language: en-GB
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: www.mysite.com
Connection: Keep-Alive

応答:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 53184
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
Date: Wed, 31 Jul 2013 08:33:25 GMT




<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <link href="Default.css?4.31.0.17051" rel="stylesheet" type="text/css" />

.........
4

2 に答える 2

0

だから私は解決策を得ましたが、必ずしも答えではありません。

最後に、サイトのタグを次のように更新しました。

<link href="Default.css?v=4.31.0.17051" rel="stylesheet" type="text/css">

それを有効なクエリ文字列に変換することを追加することv=が解決策だったのか、それとも単に URL を変更しただけでこの問題が解決したのかはわかりません。

ステージングでこの問題を再現できなかったため、どのように、またはなぜこの問題が発生し始めたのかはよくわかりません。

于 2013-08-01T08:46:15.097 に答える