2010-03-29 10 views
11

Tengo que usar la memoria caché para los archivos css y el archivo js que utilicé en el sitio. mi sitio se ejecuta en un servidor de alojamiento compartido. nada se puede hacer con el servidor.cómo configurar la memoria caché para el archivo css/js

¿Cuál podría ser la solución para usar el caché y la compresión de los archivos js y css?

+0

¿desean utilizar el almacenamiento en caché o no usar el almacenamiento en caché? – thecoshman

Respuesta

-1

Necesita un acceso para el servidor para administrar el http headers que el servidor representa en el navegador.

7

Si puede usar PHP5, use Minify ... Comprimirá, ofuscará y almacenará en caché su HTML/CSS sin cambios en el código fuente del script (JS/CSS).

Si no puede utilizar PHP5 en su servidor, comprimir & ofuscar sus archivos con YUI Compressor y la memoria caché los archivos mediante .htaccess:

<FilesMatch "\.(css|js)$"> 
Header set Cache-Control "max-age=172800, public, must-revalidate" 
</FilesMatch> 
+0

Minify es una biblioteca increíble, la recomiendo encarecidamente, la utilicé en una aplicación web grande y reduje mis solicitudes http en un 25%. –

+0

_Minify_ no "ofusca" específicamente el código. Los nombres de funciones y variables permanecen intactos – MrWhite

38

Si está usando Apache, me gustaría empezar aquí.

compresión y almacenamiento en caché son cosas diferentes.

Para la compresión, PHP Minify o compresor YUI son geniales. Si todo lo demás falla, TextMate tiene un buen paquete de herramientas de Javascript que le permite comprimir su código. Puede comprimir su código manualmente, luego subirlo y deshacer la compresión para volver a la fuente a un estado legible. No lo recomiendo, pero lo he hecho antes.

Para el almacenamiento en caché, lea el sitio askapache.com. Hay varias formas fáciles de activar mod_expires, mod_compress y otros módulos. Dado que está en hosting compartido, aquí hay advertencias porque el host puede haber desactivado ciertos módulos de Apache. He usado GoDaddy, y apagan mod_expires. Para obtener información específica del host sobre los módulos de Apache, consulte la documentación de soporte de los hosts.

Si usted es suerte, los más importantes se encuentra y se puede:

<IfModule mod_deflate.c> 
    SetOutputFilter DEFLATE 
    SetEnvIfNoCase Request_URI \ 
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary 
</IfModule> 

<IfModule mod_expires.c> 
    ExpiresActive on 
    ExpiresByType image/jpg "access 2 month" 
    ExpiresByType image/gif "access 2 month" 
    ExpiresByType image/jpeg "access 2 month" 
    ExpiresByType image/png "access 2 month" 
    ExpiresByType text/css "access 2 month" 
    ExpiresByType application/x-javascript "access plus 2 month" 
    ExpiresByType text/javascript "access plus 2 month" 
    ExpiresByType application/javascript "access plus 2 month" 
    ExpiresByType image/x-icon "access plus 12 month" 
    ExpiresByType image/icon "access plus 12 month" 
    ExpiresByType application/x-ico "access plus 12 month" 
    ExpiresByType application/ico "access plus 12 month" 
</IfModule>` 

poner este código en su archivo .htaccess, abierto Firefox, a continuación, Firebug, a continuación, YSlow. Ejecute la prueba YSlow, le permitirá saber si el almacenamiento en caché está funcionando.

Cuestiones relacionadas