tag route net data asp all asp.net asp.net-mvc iis iis-8

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