J'ai testé mon site web sur ready.mobi et ça se voit
ÉCHEC MAJEUR
Tous les actifs de page doivent utiliser les en-têtes Etag appropriés pour activer la mise en cache côté client et accélérer les chargements de page futurs.
No Etag header found.
page FixIt ne me donne rien d’aide - que puis-je faire pour résoudre ce problème? .htaccess?
ps. Mon site Web fonctionne sur un serveur virtuel externe avec Apache, il utilise le framework CodeIgniter PHP.
En PHP, vous pouvez utiliser la fonction d'en-tête pour spécifier un Etag personnalisé comme suit:
$et="11111"; // any custom etag value
header("ETag: \"".$et."\"",true);
Assurez-vous simplement que lorsque vous mettez à jour la page Web en question que la valeur etag est mise à jour. Si vous ne voulez pas faire de mise à jour manuelle d'etag, vous pouvez utiliser ce code à la place:
$et=md5(time()); // 32-bit etag value calculated based on current time in seconds since year 1970.
header("ETag: \"".$et."\"",true);
Puisque vous utilisez un framework, cherchez dans la source PHP d'autres fonctions header () et placez-y le code ci-dessus.
Tous les actifs de page doivent utiliser les en-têtes Etag appropriés.
Mon site web tourne sur un serveur virtuel externe avec Apache
Vous ne pouvez pas envoyer de façon réaliste les en-têtes ETag
de votre ressources de page (c.-à-d. Ressources statiques: images, scripts, css) à l'aide de PHP, car cela impliquerait l'envoi de tous les demandes de ces ressources, sinon statiques, via PHP, ce qui ne fera que ralentir considérablement le processus et nécessitera beaucoup de ressources processeur, ce qui annule l'objectif de définition de ETag
s en premier lieu.
Heureusement, Apache a la capacité ETag
pour les fichiers statiques intégrés. Il est activé par défaut dans Apache, mais les hôtes ont tendance à désactiver cette fonctionnalité. Il peut être activé/remplacé dans .htaccess à l’aide de la directive FileETag
, à condition que votre hôte l’autorise à le faire avec la directive AccessOverride FileInfo
dans la configuration du serveur.
Dans .htaccess (ou configuration du serveur):
# Set ETags based on the files i-node, last modified time and file size (default)
FileETag INode MTime Size
Notez que si la charge est équilibrée sur plusieurs serveurs, vous voudrez peut-être supprimer le mot clé INode
, car cela varie d'un serveur à l'autre. Cela entraînerait sinon l'envoi de ETag
s différents lorsque le fichier n'a pas effectivement changé.
Cela devrait être suffisant pour définir l’en-tête ETag
. Cependant, vous devez également vous assurer que vous ne bloquez pas la mise en cache en envoyant un en-tête Cache-Control: no-store
(ou similaire) car le navigateur n'enverra pas l'en-tête If-None-Match
correspondant avec la valeur ETag envoyée précédemment. dans la réponse. Les deux sont nécessaires. La validation ETag doit être utilisée conjointement avec la mise en cache du navigateur.
Référence:
http://httpd.Apache.org/docs/2.4/mod/core.html#fileetag