Comment cacher des scripts Javascript distants sous Nginx ?

WRInaute accro
Bonjour

Je n'ai plus que trois améliorations pour avoir 100% aux tests de Google insight.

Il y a ce problème de cache :


Si vous définissez une date d'expiration ou une durée de validité maximale pour les ressources statiques dans les en-têtes HTTP, vous indiquez au navigateur d'aller chercher les ressources déjà téléchargées sur le disque local plutôt que sur le réseau.
Exploitez la mise en cache du navigateur pour les ressources suivantes pouvant être mises en cache :
https://syndication.twitter.com/settings (10 minutes)
https://connect.facebook.net/en_US/sdk.js (20 minutes)
https://apis.google.com/js/platform.js (30 minutes)
https://apis.google.com/js/rpc:shindig_random.js?onload=init (30 minutes)
https://platform.twitter.com/widgets.js (30 minutes)
https://www.google-analytics.com/analytics.js (2 heures)


Je suis sous Nginx.

Ce sont tous des scripts javascript distants.

Comment faire pour cacher ces scripts ?

Merci beaucoup pour vos réponses.

Remerciements.
 
WRInaute accro
Faites ce que je dis, mais ne faites pas ce que je fais. On peut résumer la position de Google avec cette phrase.
Que ce soit ses scripts qui ont un délai relativement court et qui du coup apparaissent dans page speed ou bien les bannières adsense qui te flinguent carrément ton score car il y a 500 ko d’images non optimisées à télécharger, il faut bien reconnaitre que sur ce coup, GG est un peu à côté de la plaque.

Pour ma part, 98% avec ses scripts en alerte me va très bien, déjà qu’il faut « niquer » le code dans tous les sens pour en arriver là.

Et pour répondre à ta question, GG déconseille de récupérer les scripts sur son propre serveur (il me semble avoir lu cela quelque part). Donc, compliqué d’augmenter le cache à moins que quelqu‘un ait la soluce magique <= se passer des codes de GG ? :-D
 
WRInaute accro
Merci beaucoup cthierry

Effectivement il semble que Google préconise dans ce cas de copier les scripts en local.

Autre problème : Comment convertir un script javascript de manière valable en base64 ( accès par uri ), s'il contient une url avec paramètre ?

Est-il possible de faire un preg_replace() en amont du code javascript ?

Tous mes scripts Javascript sont maintenant inline/base64/uri, sauf ceux de GA et tarteaucitron.js, qui provoque une erreur avec Chrome quand je le met en base64.

Si je l'appelle de manière classique avec <script type="text/javascript" src ="script.j" defer></script>, il se charge trop lentement pour que ses fonctions et variables soient accessibles par les base64 situés après ( eux avec defer ).

J'ai supprimé le defer mais Google me donne ce seul script comme ralentissant le rendu html.

Merci beaucoup de ta réponse.

Respectueusement.
 
Discussions similaires
Haut