J'ai un serveur nginx et je ne trouve aucune information sur l'envoi des en-têtes Vary: Accept-Encoding pour les fichiers CSS et JS. Est-ce que quelqu'un a des infos à ce sujet?
Merci!
Cela provient de nginx documentation .
gzip_vary syntax: gzip_vary on|off default: gzip_vary off context: http, server, location
Active l'en-tête de réponse de
"Vary: Accept-Encoding"
. Notez que ceci En-tête, IE 4-6 ne met pas le contenu en cache en raison d'un bogue (voir 2 ).
Là, si vous ajoutez simplement gzip_vary on;
, il devrait faire son travail.
Assurez-vous également que l'une des directives gzip, gzip_static ou gunzip est active.
Dans le server {
du domaine/sous-domaine que vous souhaitez définir, ajoutez
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
gzip_vary on;
Enregistrez le fichier et redémarrez nginx.
Simple. Dans Nginx conf:
vim /etc/nginx/nginx.conf
Ajoutez ce qui suit près du bas sous la section:
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
Décommentez simplement le paramètre gzip_vary on;
et redémarrez ou rechargez le service nginx:
service nginx restart
Cela devrait résoudre le problème. Si vous utilisez une ancienne version de nginx, vous devrez peut-être activer gzip on;
, car cela est nécessaire pour que l'en-tête de variante fonctionne.
J'espère que ça aide. Pour votre information, ceci s’applique à tous les fichiers de configuration serveur/site, à moins d’être écrasé dans leurs propres blocs de serveur respectifs. server {}
Informations sur la source pour nginx, Apache et IIS: https://www.maxcdn.com/blog/accept-encoding-its-vary-important/
Si vous avez essayé les autres réponses et constatez toujours la désactivation variable (par exemple, si vous testez la vitesse de votre page à l'aide de GTMetrix), voici ce qui pourrait vous aider:
Assurez-vous que tous vos gzip_types sont également définis dans la section http /etc/nginx/nginx.conf.
Le bloc serveur dans/etc/nginx/sites-available/* est un emplacement où vous pouvez définir l'en-tête de variation et les gzip_types. Toutefois, en fonction de la configuration de votre site, vous pouvez éventuellement traiter et renvoyer des fichiers .
Dans /etc/nginx/nginx.conf, vous trouverez une section 'http' - ici, il y a aussi un gzip_types et un gzip_vary.
Pour moi - CSS et JS sont des fichiers statiques et étaient servis avant de frapper le fichier (wordpress) nginx sites-available (j’ai du vernis devant).
Ainsi, l'ajout de la liste complète de gzip_types à la section http de nginx.conf a résolu mon problème.