在将项目移动到生产服务器之后,我发现静态文件(例如图像)将不会返回状态“304未修改”,虽然有诸如“Last-Modified”和“Expires”的缓存标题。
请求标头
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 express”一切正常工作。
本地响应头
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
但远程(生产)服务器缓存快照为空
C:\Users\Администратор>netsh http show cachestate Snapshot cache HTTP responses: -------------------------------- The cache contains entries that match the specified URL-address