asp.net - route - tag helpers asp net core
304 no modificado en archivos estáticos (2)
Consulte a continuación el enlace y habilite la memoria caché de forma manual para el tipo de contenido en función de sus requisitos y vea si funciona o no.
https://www.iis.net/configreference/system.webserver/caching
Después de mover el proyecto al servidor de producción, encontré que los archivos estáticos, como las imágenes, no se devolverán con el estado "304 no modificado", aunque hay titulares de caché como "Última modificación" y "Caduca".
Encabezados de solicitud
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
Encabezados de respuesta
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
En el "IIS express" local, todo funciona correctamente.
Encabezados de respuesta local
HTTP/1.1 304 Not Modified
Cache-Control:public
Date:Mon, 07 Sep 2015 14:38:12 GMT
Etag:"1D04A9052E17E00"
Preguntar, ¿en qué podría ser la razón?
Los archivos Web.config son idénticos.
¡Gracias!
UPD 1:
UPD 2:
Instantánea de caché de máquina local devuelve imágenes
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
Pero la instantánea del caché del servidor remoto (producción) está vacía
C:/Users/Администратор>netsh http show cachestate
Snapshot cache HTTP responses:
--------------------------------
The cache contains entries that match the specified URL-address
Por lo que entiendo, el código de estado 304 significa que el servidor le dice al navegador, "hey, la imagen que está solicitando no se ha modificado desde xxxx / xx / xx, ¡utilice su caché local para estar bien!". Por lo tanto, la discrepancia entre su máquina de desarrollo y su servidor de producción probablemente se deba a la configuración IIS del servidor de producción.
Lo que puedes probar por ahora es:
- Haga una "recarga dura" a su página web en su navegador web (en Chrome, puede activar "herramienta de desarrollador" haciendo clic en F12, y luego haga clic derecho en el botón "recargar", le dará "caché vacía y recarga dura" " opción"
- En su máquina de desarrollo, intente instalar IIS en lugar de IIS express y ejecute su aplicación web dentro de IIS. Puede haber una discrepancia de configuración predeterminada entre IIS express y su servidor de producción IIS, por lo que debe intentar imitar el entorno del servidor de producción en su máquina de desarrollo.
- Intente deshabilitar el caché de IIS explícitamente. Puede encontrar cómo hacerlo aquí https://serverfault.com/questions/117970/iis-7-returns-304-instead-of-200
¡Espero que esto ayude! Enrique