headers - "Caduca" en el encabezado http para contenido estático? cómo
protocolo http cabeceras (6)
Podrías probar algo como esto:
@ECHO OFF
REM ---------------------------------------------------------------------------
REM Caching - sets the caching on static files in a web site
REM syntax
REM Caching.CMD 1 d:/sites/MySite/WWWRoot/*.CSS
REM
REM %1 is the WebSite ID
REM %2 is the path & Wildcard - for example, d:/sites/MySite/WWWRoot/*.CSS
REM _adsutil is the path to ADSUtil.VBS
REM ---------------------------------------------------------------------------
SETLOCAL
SET _adsutil=D:/Apps/Scripts/adsutil.vbs
FOR %%i IN (%2) DO (
ECHO Setting Caching on %%~ni%%~xi
CSCRIPT %_adsutil% CREATE W3SVC/%1/root/%%~ni%%~xi "IIsWebFile"
CSCRIPT %_adsutil% SET W3SVC/%1/root/%%~ni%%~xi/HttpExpires "D, 0x69780"
ECHO.
)
Lo que establece el valor de almacenamiento en caché para cada archivo CSS en una raíz web en 5 días, luego ejecútelo de esta manera:
Caching.CMD 1 /site/wwwroot/*.css
Caching.CMD 1 /site/wwwroot/*.js
Caching.CMD 1 /site/wwwroot/*.html
Caching.CMD 1 /site/wwwroot/*.htm
Caching.CMD 1 /site/wwwroot/*.gif
Caching.CMD 1 /site/wwwroot/*.jpg
Tipo de dolor, pero viable.
Por cierto: para obtener el valor de HttpExpires, establezca el valor en la GUI, luego ejecútelo
AdsUtil.vbs ENUM W3SVC/1/root/File.txt
para obtener el valor real que necesita
¿Cuál es la mejor manera de agregar "Caduca" en el encabezado http para contenido estático? p.ej. imágenes, css, js
El servidor web es IIS 6.0; el lenguaje es ASP clásico
en el administrador de IIS, puede establecerlo para cada tipo de archivo o puede (en el caso de los dinámicos, aspx) hacerlo en el código. Después de configurarlo, debe verificar los encabezados que salen con una herramienta como el complemento Mozilla firefox + live headers, o puede usar una herramienta basada en web como http://www.httpviewer.net/
Solución terrible, el primer comando para crear con adsutil fallará con el error -2147024713 (0x800700B7) ya que los archivos que intenta crear ya existen.
Gracias.
Creo que esto es lo que buscas, es la caducidad del contenido bajo encabezados HTTP en el Administrador de IIS. Utilizo el patrón de pegar el contenido estático en una carpeta como ~ / Resources y establecer la caducidad en esa carpeta en particular para tener una vida mucho más larga que el resto de la aplicación.
Aquí hay un enlace al artículo completo: IIS 6.0 F1: Propiedades del sitio web: pestaña Encabezados HTTP
No sé si esto es lo que estás buscando, pero evita que mis páginas se almacenen en caché.
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0">
Obtuve esto de un artículo en línea que ya no tengo referencia.
Para otros que provienen de google: esto no funcionará en iis6, pero funciona en 7 o más.
En su web.config:
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>