2011-04-03 15 views
14

cuando pruebo mi sitio web para SpeedTest estoy viendo un montón de expiración no especifica error.You puede ver en this page.especificando la fecha de caducidad para cada caché de archivo estático

he añadido el código a mi archivo .htaccess

## EXPIRES CACHING ## 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresByType image/jpg "access 1 year" 
ExpiresByType image/jpeg "access 1 year" 
ExpiresByType image/gif "access 1 year" 
ExpiresByType image/png "access 1 year" 
ExpiresByType text/css "access 1 month" 
ExpiresByType application/pdf "access 1 month" 
ExpiresByType text/x-javascript "access 1 month" 
ExpiresByType application/x-shockwave-flash "access 1 month" 
ExpiresByType image/x-icon "access 1 year" 
ExpiresDefault "access 2 days" 
</IfModule> 
## EXPIRES CACHING ## 

Pero nada cambió. ¿Me puede dar un consejo, porque puedo especificar la fecha de vencimiento de mis archivos estáticos?

Servidor: Linux - Apache

+0

¿Qué ocurre si se quita los '' líneas desde el principio y el final? Esto debería causar un error de 500 si el módulo no está instalado. – clmarquart

+0

¿Reinició el servidor después de realizar cambios en el archivo de configuración? – alexy13

Respuesta

0

Tal vez usted no se cargó mod_expires, por lo que toda la estrofa es un no-op. O bien, AllowOverride es None y su archivo .htaccess no se procesa.

+0

Puedo usar las reglas de reescritura de WordPress .htaccess. – Eray

+0

¿qué pasa con el problema ifModule? ¿Y verifica los encabezados con un cliente http de la línea de comandos o simplemente continúa la ejecución de la herramienta de velocidad? – covener

+0

No tengo suficiente experiencia con esto. Por lo tanto, no pude verificar el problema deMódulo. – Eray

4

Puede utilizar mod_headers para hacer el truco:

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
    Header set Cache-Control "max-age=290304000, public" 
</FilesMatch> 

O puede utilizar mod_expires:

ExpiresByType text/html "access plus 1 month 15 days 2 hours" 
ExpiresByType image/gif "modification plus 5 hours 3 minutes" 
1

veo que tiene PHP instalado (wordpress de referencia), así que trataremos de diagnostique su problema:

  1. reinicie su servidor web Apache. Si posee el servidor apache (acceso de línea de comando), puede hacerlo like such.
  2. create a phpinfo page. Esto le permitirá ver los módulos de apache instalados. Verifique el módulo mod_expires.c que desea usar (debe poder hacer una solicitud CTL-F (find) en su navegador para mod_expires). Si lo encuentras, ¡BIEN! De lo contrario, debe instalar mod_expires en su servidor apache. Si posee su servidor apache, puede buscar cómo instalar módulos para su sistema operativo específico. De lo contrario, puede consultar con su proveedor de hosting sobre cómo instalar este módulo. Una vez instalado, proceda.
  3. modificar su entrada http.conf para incluir "plus" en su expresión
  4. reinicio de Apache de nuevo
  5. Prueba =)
35

me gusta la forma html5boilerplate:

<IfModule mod_expires.c> 
    ExpiresActive on 

# Perhaps better to whitelist expires rules? Perhaps. 
    ExpiresDefault       "access plus 1 month" 

# cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5) 
    ExpiresByType text/cache-manifest  "access plus 0 seconds" 

# your document html 
    ExpiresByType text/html     "access plus 0 seconds" 

# data 
    ExpiresByType text/xml     "access plus 0 seconds" 
    ExpiresByType application/xml   "access plus 0 seconds" 
    ExpiresByType application/json   "access plus 0 seconds" 

# rss feed 
    ExpiresByType application/rss+xml  "access plus 1 hour" 

# favicon (cannot be renamed) 
    ExpiresByType image/x-icon    "access plus 1 week" 

# media: images, video, audio 
    ExpiresByType image/gif     "access plus 1 month" 
    ExpiresByType image/png     "access plus 1 month" 
    ExpiresByType image/jpg     "access plus 1 month" 
    ExpiresByType image/jpeg    "access plus 1 month" 
    ExpiresByType video/ogg     "access plus 1 month" 
    ExpiresByType audio/ogg     "access plus 1 month" 
    ExpiresByType video/mp4     "access plus 1 month" 
    ExpiresByType video/webm    "access plus 1 month" 

# htc files (css3pie) 
    ExpiresByType text/x-component   "access plus 1 month" 

# webfonts 
    ExpiresByType font/truetype    "access plus 1 month" 
    ExpiresByType font/opentype    "access plus 1 month" 
    ExpiresByType application/x-font-woff "access plus 1 month" 
    ExpiresByType image/svg+xml    "access plus 1 month" 
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month" 

# css and javascript 
    ExpiresByType text/css     "access plus 2 months" 
    ExpiresByType application/javascript "access plus 2 months" 
    ExpiresByType text/javascript   "access plus 2 months" 

    <IfModule mod_headers.c> 
    Header append Cache-Control "public" 
    </IfModule> 

</IfModule> 

Esperanza esta puede ser útil para ti Fuente: https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess

+0

¡Tu enlace está roto! Por favor actualízalo. De todos modos, +1 a la respuesta. – Zuul

+1

Enlace fijo. gracias, Zuul. – Eduardo

0

Sólo tiene que añadir:

ExpiresByType application/javascript "access plus 1 year" 
Cuestiones relacionadas