web-dev-qa-db-fra.com

Feuille de style non mise à jour

Je crée un site Web, mais lorsque j'ai apporté des modifications à la feuille de style sur mon site et que j'ai actualisé le site, aucune des modifications ne s'y trouvait.

J'ai essayé d'utiliser l'outil d'affichage des sources pour vérifier le stylesheet.css et il n’est pas mis à jour non plus. Mais quand je vais à la racine de mon système, c'est le cas.

Je dois attendre au moins 20 minutes avant de voir la mise à jour sur mon site. Quelqu'un peut-il me dire pourquoi je ne vois pas les changements tout de suite? Quelque chose ne va pas avec mon navigateur, mon ordinateur ou mon serveur?

J'ai également essayé de supprimer mes cookies, mon cache et mon historique, mais cela ne fonctionnait toujours pas.

39
Mihad Aiko

Si votre site n'est pas encore en ligne et que vous souhaitez simplement mettre à jour la feuille de style à votre rythme, utilisez ceci:

Ctrl + F5

Cela forcera votre navigateur à recharger et à actualiser toutes les ressources liées à la page du site Web.

Donc, chaque fois que vous modifiez quelque chose dans votre feuille de style et que vous voulez voir les nouveaux résultats, utilisez ceci.

Sous Mac OS Chrome, utilisez: Commande + Maj + R.

100
Sean Vaughn

Très probablement, le fichier vient d'être mis en cache par le serveur. Vous pouvez soit désactiver le cache (mais n'oubliez pas de l'activer lorsque le site est mis en ligne), soit modifier href de votre balise link afin que le serveur ne le charge pas à partir du cache.

Si votre page est créée dynamiquement par un langage tel que php, vous pouvez ajouter une variable à la fin de la valeur href, comme:

    <link rel="stylesheet" type="text/css" href="css/yourStyles.css?<?php echo time(); ?>" />

Cela ajoutera l'horodatage actuel à la fin du chemin d'un fichier, de sorte qu'il sera toujours unique et ne sera jamais chargé à partir du cache.

Si votre page est statique, vous devez gérer ces variables vous-même, utilisez donc quelque chose comme:

    <link rel="stylesheet" type="text/css" href="css/yourStyles.css?version=1" />

après avoir modifié le contenu du fichier, changez version=1 à version=2 etc.

Si vous souhaitez désactiver le cache de la mise en cache des fichiers css, reportez-vous à la documentation de votre type de serveur (la procédure est différente sur Apache, IIS, nginx, etc.) ou posez/recherchez une question sur https://serverfault.com /

En supposant que IIS - l'ajout de la clé sous avec les paramètres corrects dans la racine ou le dossier approprié fait l'affaire.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <caching enabled="false" enableKernelCache="false" /> <!-- This one -->
    </system.webServer>
</configuration>

Cela dit, il est parfois nécessaire de recycler le pool d'applications pour "bump" le CSS. Par conséquent: Désactiver IIS la mise en cache n'est pas une solution garantie à 100%.

Pour le navigateur: Il y a quelques notes sur contrôle fin du cache local sur FF sur SuperUser pour les personnes intéressées.

39
Bartosz Górski

J'ai eu le même problème et cela était dû au fait que le navigateur avait mis en cache la feuille de style. Essayez d'actualiser le cache:

    Cmd + Shift + r (on a mac) OR Ctrl + F5 (on windows)

Cela effectuera une actualisation matérielle et devrait utiliser la nouvelle feuille de style que vous avez téléchargée sur le serveur.

9
NCal

Le moyen le plus simple de savoir si le fichier est en cours de mise en cache consiste à ajouter une chaîne de requête au fichier <link /> élément pour que le navigateur le recharge.

Pour ce faire, vous pouvez modifier la référence de votre feuille de style à quelque chose comme

<link rel="stylesheet" type="text/css" href="/css/stylesheet.css?v=1" />

Noter la v=1 partie. Vous pouvez le mettre à jour chaque fois que vous créez une nouvelle version pour voir si elle est effectivement mise en cache.

8
Marko

Ce n’était peut-être pas le problème du PO, mais j’avais le même problème et je l’ai résolu en vidant puis en désactivant Supercache sur mon cpanel. Peut-être d'autres novices comme moi ne sauront-ils pas que de nombreux fournisseurs d'hébergement mettent en cache CSS et certains autres fichiers statiques, et que ces anciennes versions en cache de fichiers CSS persisteront dans le cloud pendant des heures après la modification du fichier sur votre serveur. Si votre site contient d'anciennes versions de fichiers CSS après leur modification et que vous êtes certain d'avoir effacé le cache de votre navigateur et que vous ne savez pas si votre hôte met en cache des éléments, vérifiez-le avant d'essayer autre chose. suggestions compliquées.

2
TomW

J'ai eu un problème similaire, rendu encore plus exaspérant en étant très lent à mettre à jour. Je ne pouvais pas appliquer mes modifications lorsque je travaillais sur le site pour sauver ma vie (j'essayais de vider le cache de mon navigateur et de supprimer les cookies), mais si je revenais sur le site plus tard dans la journée ou si j'ouvrais un autre navigateur, ils étaient.

J'ai également résolu le problème en désactivant le logiciel Supercacher sur le cpanel de mon hôte (Siteground). Vous pouvez également utiliser le bouton "flush" pour que des répertoires individuels vérifient si c'est bien le cas avant la désactivation.

2
Jonathan

Dans mon cas, comme je ne pouvais pas ajouter d'horodatage de contournement du cache à l'URL css, il s'est avéré que je devais actualiser manuellement le pool d'applications dans IIS 7.5.7600.

Toutes les autres possibilités ont été poursuivies, allant jusqu'à désactiver complètement la mise en cache pour le site et également pour le navigateur local (comme ENTIÈREMENT désactivé pour les deux), toujours sans succès. Également "redémarrer" le site n'a rien fait.

Même position que moi? [Nom du site]> "Pool d'applications"> "Recycler" est votre dernier recours ...

1
twobob

![Vider le cache] Ctrl+Shift+Deletehttp://i.stack.imgur.com/QpqhJ.jpg Il est parfois nécessaire de procéder à une actualisation physique pour que les mises à jour prennent effet. Toutefois, il est peu probable que les internautes en général sachent ce qu’est une actualisation définitive. Vous ne pouvez pas non plus vous attendre à ce qu’ils actualisent continuellement la page jusqu’à ce que les choses se passent bien. Voici une façon de le faire: <link rel="stylesheet" href="style.css?v=1.1">

1
Arul

Cela peut être le résultat de la configuration de votre serveur, certains fournisseurs d’hébergement activent "Varnish" sur votre domaine. Ce proxy inverse HTTP en cache est utilisé pour accélérer la livraison . On pourrait essayer de désactiver le vernis sur le cpanel (en supposant que vous en ayez un) et vérifier si c'était le cas.

1

S'il est mis en cache sur le serveur, vous ne pouvez rien faire dans le navigateur pour résoudre ce problème. Vous devez attendre que le serveur recharge le fichier. Vous ne pouvez même pas supprimer le fichier et le télécharger à nouveau. Cela pourrait prendre encore plus de temps si vous utilisez un serveur de mise en cache tel que Cloudflare (il survivra même au redémarrage du serveur). Vous pouvez le renommer et charger une copie.

0
user1718232