5379 sujets

Sémantique web et HTML

Bonjour,
J'ai plusieurs feuille de styles CSS sur ma page web don't une (celle que je modifie le plus) qui me pose problème.
Quand je la modifie elle n'est pas prise en compte immédiatement, il faut patienter plusieurs jours.
J'ai modifier le .htaccess pour éviter ça mais l'éhébergeur semble le remodifier automatiquement donc je me suis pencher sur un système de cachekiller.

Du coup pour appeler ma feuille de style je fais comme ceci afin de charger toujoursune "nouvelle" version qui n'est pas en cache (en théorie car en pratique bah ça marche pas xD) :
<link href="css/style.min.css?cachekiller=<?php echo date('dmYHi'); ?>" rel="stylesheet" type="text/css">

Ce qui une fois sur le serveur donne ceci dans le code par exemple :
<link href="css/style.min.css?cachekiller=080520201052" rel="stylesheet" type="text/css">

Quelqu'un aurait une solution ?
Modifié par Breat (08 May 2020 - 10:59)
Hello!
Le site est déjà en ligne, ou il est en développement? Dans le second cas, vider le cache du navigateur à chaque rechargement fera l'affaire Smiley smile
Sinon, si le site est en ligne et que le htaccess est modifié par l'hébergeur (bizarre), il y a la possibilité au chargement de la page d'envoyer des header php du genre :
header("Cache-Control: no-store, no-cache, must-revalidate");

Il doit y avoir des exemples sur le net pour savoir lesquels exactement, et pour cibler uniquement le CSS...
Oui le site est déjà en ligne.

Où dois-je mettre ton code ?

Voilà le contenu de mon .htaccess, malgré le fait que j'ai supprimé tous les CSS présent ils reviennent à chaque fois, d'où ma déduction de la modification automatique par l'hébergeur :
<IfModule mod_gzip.c>
    mod_gzip_on Yes
    mod_gzip_dechunk Yes
    mod_gzip_item_include file \.(html|htm|css|txt|js|php|pl)$
    mod_gzip_item_include handler ^cgi-script$
    mod_gzip_item_include mime ^text\.*
    mod_gzip_item_include mime ^application/x-javascript.*
    mod_gzip_item_exclude mime ^image\.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

# Active la compression DEFLATE - option Apache
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/shtml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
  </IfModule>
</IfModule>

<IfModule mod_headers.c>
  <FilesMatch "\.(css|js|gif|png|jpg|jpeg)$">
    Header set cache-control "max-age=302400"
  </FilesMatch>
</IfModule>


Les parties que j'avais retirées sont :
AddOutputFilterByType DEFLATE text/css

<FilesMatch "\.(css|js|gif|png|jpg|jpeg)$">
remplacée par
<FilesMatch "\.(js|gif|png|jpg|jpeg)$">

Modifié par Breat (08 May 2020 - 12:07)
Je suis vraiment pas un pro du htaccess donc je pourrai pas dire si ça va ou pas...
Mon code (à compléter) doit se mettre avant tout html. Ne sachant pas comment est structuré ton site, difficile d'en dire plus... Si tu as un script d'initialisation avec ouverture de session, connexion base de données, etc ce sera sûrement là! Smiley cligne
pas de base de données, juste du html et un chouillat de php par-ci par-là

avant tout code html, tu veux dire avant le doctype ou dans le head ?

mon site est comme ci :
<!DOCTYPE html>
<html lang="fr">
    <head>blablabla</head>
    <body>blablabla</body>
</html>