W3 Total cache, CDN et fichiers de thèmes [fermé]

10

J'ai récemment mis à jour le fichier style.css de mon installation WordPress. Les modifications ont été effectives: lorsque je suis connecté en tant qu'administrateur (mon blog est configuré pour que l'administrateur ne reçoive jamais une version en cache du site, mais une version «en direct»), je peux les voir.

Mais mon blog est diffusé via un CDN (en utilisant W3 Total Cache). Par le biais du CDN, les modifications ne sont pas effectives: le CDN ne sert pas les fichiers modifiés de mon thème. Même si je les ai téléchargés après modification (Tableau de bord> Performances> CDN> Télécharger des fichiers de thème.

Mon CDN s'exécute sur AmazonCloud Front. Et Minify est désactivé sur W3 Total Cache.

Le fichier de thème diffusé via mon CDN est une version compressée: style.css.gzip

Dois-je "purger" des objets de mon CDN ou attendre un peu plus (cela fait plus d’une semaine). Et oui, je vide le cache du navigateur que j’utilise pour voir que les modifications prennent effet. Ou y at-il autre chose qui me manque?

Merci,

P.

    
posée Parneix 14.08.2012 - 00:21

3 réponses

10

Vous devez soit

  1. Versionnez vos fichiers (en l'appelant style.css?ver=xxx.xxx ) et en vous assurant que votre chaîne CloudFront a activé les "chaînes de requête". C’est la meilleure option, car cela signifie que tout ce que vous avez à faire est d’incrémenter le nombre dans la chaîne de requête et CloudFront récupérera ce fichier automatiquement.

  2. Annulez manuellement vos fichiers via la console AWS (un onglet d'invalidation existe lorsque vous modifiez votre distribution)

Pour activer les "chaînes de requête", procédez comme suit:

  • Modifiez votre distribution Cloudfront en cochant la case située à gauche du "i", puis cliquez sur le bouton "paramètres de distribution" dans la barre d'outils
  • Accédez à l'onglet Comportements
  • .
  • Sélectionnez la ligne, puis cliquez sur "Modifier"
  • Remplacez "chaînes de requête" par Oui
  • Cliquez sur "Oui, éditer"
réponse donnée anu 14.08.2012 - 00:27
8

Il existe une "astuce" assez simple pour empêcher la mise en cache lorsque le contenu du fichier est modifié: ajoutez un numéro de version, défini sur la dernière date / heure de la modification du fichier.

add_action( 'wp_enqueue_scripts', 'wpse61738_non_cached_stylesheet' );
function wpse61738_non_cached_stylesheet()
{
    wp_enqueue_style( 
        'style-main',
        get_stylesheet_directory_uri().'/style.css',
        array(),
        filemtime( get_stylesheet_directory().'/style.css' )
    );
}

Ceci ajoutera ?ver=0123456789 à votre lien de référence style.css dans votre en-tête. Le numéro de version ne changera que lorsque le contenu du fichier sera modifié. Vous disposez donc d’une solution qui fonctionne parfaitement avec a) le cache côté serveur b) le cache du navigateur et s’actualise automatiquement.

    
réponse donnée kaiser 14.08.2012 - 00:37
-1

une réponse courte ...

  1. Supprimez tous vos fichiers de thème et téléchargez-les à nouveau. parfois l'action delete supprime le CDN

  2. Oui, vous pouvez essayer de purger, mais la suppression et le ré-envoi sont généralement plus rapides.

  3. Vérifiez également les paramètres dans W3TC et Amazon. Le cache par défaut pour dans W3TC est généralement de 365 jours. qui est 31536000 secondes:)

Dans Amazon .., les ordinateurs d'extrémité seront configurés pour interroger à nouveau le CDN. Je sais que dans Rackspace, la valeur par défaut est 24 heures.

    
réponse donnée Damien 14.08.2012 - 00:26

Lire d'autres questions sur les étiquettes