Exclure des fichiers JS du chargement différé

Parfois l'option  Chargement différé des fichiers JS (Optimisation des fichiers → Fichiers JavaScript) peut créer des conflit avec certains fichiers.

Si cette option vous cause des problèmes, vous avez peut-être besoin d'exclure certains fichiers du processus. Vous pouvez faire ceci en téléchargeant, en installant, et en modifiant le petit plugin d'aide suivant :

Attention ! Vous devez modifiez la ligne débutant par $excluded_files[] pour indiquer le chemin du fichier que vous souhaitez exclure.

📥  Télécharger (.zip): WP Rocket | Exclude Files from Defer JS

Développeurs: Vous pouvez trouver le code pour ce plugin sur GitHub.

Astuce pour que ça fonctionne

Supprimer la query string

Supprimer toutes les query string après l'extension  .js. Par exemple, pour exclure :

https://example.com/wp-content/themes/neutro/js/responsive-menu.js?ver=46e6ce

utilisez :

/wp-content/themes/neutro/js/responsive-menu.js

Supprimez le nom de domaine des URLs des fichiers externes

Pour les fichiers JS externes (i.e. ceux qui ne sont pas sur votre domaine), supprimez le nom de domaine. Par exemple, pour exclure :

https://ws.sharethis.com/button/st_insights.js?publisher=123-abc-456&product=simpleshare

utilisez :

/button/st_insights.js

Fichiers hébergés sur des domaines externes

À partir de WP Rocket 3.1.3,  vous pouvez exclure des fichiers JS externes (c'est-à-dire ceux qui ne sont pas hébergés sur votre domaine) en utilisant :

  • Seulement le domaine
  • N'importe quelle partie de l'URL
  • Les Wildcards

 Par exemple, pour exclure cette URL :

https://ws.sharethis.com/button/st_insights.js?publisher=123-abc-456&product=simpleshare

N'importe lequel des suivants fonctionnera :

$excluded_files[] = '/button/st_insights.js';
$excluded_files[] = 'ws.sharethis.com';
$excluded_files[] = 'https://ws.sharethis.com/button/(.*).js';

Méthode d’exclusion alternative

Vous pouvez alors exclure ces fichiers du chargement différé en modifiant leur balise  script là où ils sont inclus.

Si vous y ajoutez  async="false" , WP Rocket ne tiendra pas compte du fichier, et en la réglant à "false", le chargement asynchrone ne sera pas appliqué non plus. Par exemple :

Cela a-t-il répondu à votre question ? Merci pour votre retour :) Une erreur est survenue lors de l’envoi de votre retour. Veuillez réessayer plus tard.