Mise en Cache du navigateur de fichiers CSS
Petite question concernant le CSS et le navigateur. J'ai essayé de cherche et trouve certains des postes similaires, mais rien de définitif.
J'utilise un ou deux fichiers CSS dans mes projets web. Ces sont référencés dans la TÊTE de mes pages web. Une fois que j'ai touché l'une de mes pages, le CSS mise en cache afin de ne pas re-télécharger à chaque requête? Je l'espère. Ne IE, Firefox et Safari gérer cela différemment? Si le navigateur est fermé, est le CSS actualisées sur la première visite une nouvelle instance du navigateur est ouvert?
- La "taille du fichier" partie du titre est un peu trompeur, puisque la question n'a pas vraiment tournent autour de la taille de fichier à tous. "Les fichiers CSS et mise en Cache du Navigateur" ou "mise en Cache du Navigateur de fichiers CSS" ressemble à beaucoup mieux de titres... </twocents>
- Permettez-moi de suggérer quelques tags supplémentaires, comme: http, la mise en cache, brwoser.
Vous devez vous connecter pour publier un commentaire.
Votre fichier probablement être mis en cache, mais ça dépend...
Différents navigateurs ont des comportements légèrement différents - dont la plus remarquable lorsque l'on traite avec ambiguë limitée de la mise en cache des en-têtes de émanant de du serveur. Si vous envoyez un signal clair, les navigateurs obéir, pratiquement tout le temps.
Le plus grand écart de loin, est la mise en cache par défaut de la configuration des différents serveurs web et les serveurs d'applications.
Certains (par exemple Apache) sont susceptibles de servir connue types de fichiers statiques avec des en-têtes HTTP en encourageant le navigateur de cache, tandis que les autres serveurs peuvent envoyer
no-cache
commandes avec chaque réponse - quel que soit le type du fichier....
Donc, d'abord, de lire quelques-uns des excellents La mise en cache HTTP tutoriels là-bas. La mise en Cache HTTP & Cache-Busting
pour les Éditeurs de Contenus a été une vraie révélation pour moi 🙂
À côté de l'installer et de jouer avec Firebug et la Live HTTP Headers add-on , pour savoir qui des en-têtes de votre serveur d'envoi.
Puis lire votre serveur web docs pour savoir comment ajuster à la perfection (ou parlez-en à votre sysadmin dans le fait pour vous).
...
Sur ce qui se passe lorsque le navigateur est redémarré, il dépend du navigateur et la configuration de l'utilisateur.
Comme une règle du pouce, attendre le navigateur afin d'être plus susceptibles de check-in avec le serveur après chaque redémarrage, pour voir si quelque chose a changé (voir Si-Last-Modified et Si-None-Match).
Si vous configurez votre serveur correctement, il devrait être en mesure de retourner un super-court "304 Not Modified" (coûtant très peu de bande passante) et après que le navigateur va utiliser le cache comme d'habitude.
À la première partie de votre question, oui, navigateurs cache des fichiers css (si ce n'est pas handicapé par navigateur de configuration). De nombreux navigateurs ont une combinaison de touches pour recharger une page sans un cache.
Si vous avez apporté des modifications à css et souhaitez que les utilisateurs voient immédiatement au lieu d'attendre la prochaine fois lorsque le navigateur recharge les fichiers sans mise en cache, vous pouvez modifier le CSS ir servi en ajoutant des paramètres à l'url comme ceci:
/style.css?modified=20012009
comme une URL, c'est l'équivalent de modifier le nom de votre fichier CSS à chaque fois que vous faites une libération. Depuis le navigateur pense que le fichier est nouveau, il ne va pas essayer d'utiliser toute version en cache d'elle.Il ne dépend pas de les en-têtes HTTP envoyés avec les fichiers CSS, comme les deux précédentes réponses de l'état aussi longtemps que vous n'avez pas à ajouter tout de contournement du cache des trucs pour le href. par exemple,
Certains cadres (par exemple, des rails, mettez-les dans par défaut.
Toutefois, Si vous obtenez quelque chose comme firebug ou fiddler, vous pouvez voir exactement ce que votre navigateur est en cours de téléchargement à chaque requête - qui est particulièrement utile pour trouver ce que votre navigateur est faire, contrairement à ce qu'il devrait faire.
Tous les navigateurs devrait respecter les en-têtes de cache de la même façon, sauf si configuré pour ignorer (mais il y a certainement des exceptions)
Il est sans doute intéressant de noter que IE ne cache css fichiers appelés par d'autres fichiers css en utilisant le @import méthode. Ainsi, par exemple, si votre page html les liens "maître.css" qui tire dans la "remise.css" via @import, puis remis à zéro.css ne sera pas mis en cache par IE.
Ça dépend de ce que les en-têtes de vous les envoyer avec vos fichiers CSS. Vérifiez la configuration de votre serveur comme vous êtes probablement ne pas les envoyer manuellement.
Faites une recherche google pour "la mise en cache http" pour en savoir plus sur les différentes options de mise en cache, vous pouvez définir.
Vous pouvez forcer le navigateur à télécharger une nouvelle copie du fichier chaque fois qu'il le charge, par exemple, ou vous pouvez mettre en cache le fichier pour une semaine...
Sauf si vous avez raté avec votre serveur, oui il est mis en cache. Tous les navigateurs sont censés gérer elle même. Certaines personnes (comme moi) peuvent avoir leur navigateur configuré de sorte qu'il n'est pas en cache des fichiers. La fermeture du navigateur n'invalident pas le fichier dans le cache. Changer le fichier sur le serveur devrait provoquer une actualisation du fichier.