2010-03-29 3 views
11

Je dois utiliser le cache pour les fichiers CSS et js que j'ai utilisé dans le site. mon site s'exécutant dans un serveur d'hébergement partagé. rien ne peut être fait avec le serveur. Donc, quelle pourrait être la solution pour utiliser le cache et la compression pour les fichiers js et css.comment configurer le cache pour css/js

+0

sont désireux d'utiliser la mise en cache ou de ne pas utiliser la mise en cache? – thecoshman

Répondre

-1

Vous avez besoin d'un accès pour le serveur pour gérer le http headers que le serveur affiche dans le navigateur.

7

Si vous pouvez utiliser PHP5, utilisez Minify ... Il compressera, obscurcira et mettra en cache votre code HTML/CSS sans modifications dans le code source du script (JS/CSS).

Si vous ne pouvez pas utiliser sur votre serveur PHP5, compresser vos fichiers & Occultation avec YUI Compressor et mettre en cache vos fichiers en utilisant .htaccess:

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

Minify est une bibliothèque impressionnante, je la recommande vivement, je l'ai utilisée sur une grande application web et réduit mes requêtes http de 25%. –

+0

_Minify_ n'objecte pas spécifiquement le code. Les noms de fonction et de variable restent intacts, – MrWhite

38

Si vous utilisez Apache, je commencerais ici.

compression et la mise en cache sont des choses différentes.

Pour la compression, PHP Minify ou YUI Compressor sont géniaux. Si tout le reste échoue, TextMate a un bon paquet d'outils Javascript qui vous permet de compresser votre code. Vous pouvez compresser manuellement votre code, puis le télécharger et annuler la compression pour rétablir la source dans un état lisible. Je ne le recommande pas, mais je l'ai déjà fait.

Pour la mise en cache, lisez le site askapache.com. Il existe plusieurs manières simples d'activer mod_expires, mod_compress et d'autres modules. Puisque vous êtes sur un hébergement partagé, voici des mises en garde car l'hôte peut avoir désactivé certains modules Apache. J'ai utilisé GoDaddy, et ils désactivent mod_expires. Pour des informations spécifiques à l'hôte sur les modules Apache, reportez-vous à la documentation de support des hôtes.

Si vous êtes chance, les plus importants sont et vous pouvez:

<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>` 

Mettez ce code dans votre fichier .htaccess, ouvrez FireFox, puis Firebug, puis YSlow. Exécutez le test YSlow, il vous permettra de savoir si la mise en cache fonctionne.

Questions connexes