將項目移至生產服務器後,我發現靜態文件(如圖像)不會以狀態「304未修改」的形式返回,儘管有像「Last-Modified 「和」過期「。304在靜態文件上未修改
請求頭
Accept:image/webp,image/*,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,uk;q=0.2
Cache-Control:max-age=0
Connection:keep-alive
Cookie:_LANG=ru
DNT:1
Host:test.com
If-Modified-Since:Mon, 07 Sep 2015 08:46:37 GMT
If-None-Match:"1D0E949B4DCD480"
Referer:http://test.com/ru/Some/Index/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36
響應頭
HTTP/1.1 200 OK
Cache-Control: public
Content-Type: image/png
Expires: Tue, 08 Sep 2015 14:33:06 GMT
Last-Modified: Mon, 07 Sep 2015 08:46:37 GMT
Accept-Ranges: bytes
ETag: "1D0E949B4DCD480"
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 07 Sep 2015 14:33:06 GMT
Content-Length: 5953
在當地的 「IIS表示」 一切正常。
本地響應頭
HTTP/1.1 304 Not Modified
Cache-Control:public
Date:Mon, 07 Sep 2015 14:38:12 GMT
Etag:"1D04A9052E17E00"
及時,可能是什麼原因?
Web.config文件是相同的。
謝謝!
UPD 1:
UPD 2:
本地機器高速緩存快照返回圖像
C:\Users\dev>netsh http show cachestate
Snapshot cache responses HTTP::
--------------------------------
URL-address: http://dev2-pc:1437/Views/CustomMeme/byby/img/header.jpg
Status Code: 200
Команда HTTP: GET
Тип политики кэша: Срок жизни (TTL)
Срок жизни записи в кэше (сек): 86399
Время создания: 2015.9.8:12.14.41:0
Имя очереди запросов: Clr4IntegratedAppPool{737BCE3B-FD81-4AB4-B976-A3A8C8A-94D8}
Тип содержимого: image/jpeg
Кодировка содержимого: (null)
Длина заголовков: 415
Длина содержимого: 49017
Число обращений: 3
Принудительное отключение после обслуживания: FALSE
但是遠程(生產)SER版本緩存快照是空
C:\Users\Администратор>netsh http show cachestate
Snapshot cache HTTP responses:
--------------------------------
The cache contains entries that match the specified URL-address
好奇你的請求頭包括'Pragma:no-cache'。當開發人員工具打開時,您的瀏覽器是否設置爲禁用緩存? –
@ChrisCurtis,謝謝你的回答,'Pragma:no-cache'不會影響響應。我更新問題文本並添加一些屏幕截圖。 –
web.config是否一樣?生產服務器上是否禁用了靜態緩存?這裏涉及很多變量,理想情況下,靜態內容過期必須在IIS級別打開或在web.config –