4 votes

Activer le Scripting Cross Origin sur Nginx de retina.js pour charger des fichiers depuis une autre URL?

Je cours un plugin d'image rétinienne avec W3 Cache pour le support CDN. W3 cache déplace les images vers S3, mais le fichier JS ne servira pas les fichiers de là en raison de la différence d'URL (il passe de h ttp://mysite.com à h ttp://assets.mysite.com)

J'ai trouvé un message qui dit pour activer ceci, ajoutez simplement ceci à votre fichier .htaccess

# ----------------------------------------------------------------------
# Images activées pour CORS (@crossorigin)
# ----------------------------------------------------------------------
# Envoyer des en-têtes CORS si les navigateurs les demandent; activé par défaut pour les images.
# developer.mozilla.org/en/CORS_Enabled_Image
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute

# mod_headers, pourquoi ne correspond-il pas par type de contenu?!

SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS

et ensuite le JS pourra charger les images depuis S3 - mais je ne sais pas comment faire cela sur Nginx. Quelqu'un pourrait-il me donner un exemple simple ?

Le message original dont il s'agit est - http://wordpress.org/support/topic/doesnt-work-with-cdn-w3-total-cache?replies=4

1voto

JDJ114 Points 1

Vous devrez activer les règles CORS sur votre bucket S3, http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors

une règle simple qui devrait fonctionner pour vous est:

*
GET

0 votes

Dans le fil de discussion ci-dessus, pourquoi activer l'option dans le fichier .htaccess du serveur avec le fichier .JS dans la réponse? Dois-je faire les deux? Il est certain que c'est le fichier .js sur mon serveur qui doit accéder au nom du sous-domaine, car c'est lui qui échoue à apporter les liens corrects.

0 votes

Oui, les fichiers JS sont servis depuis votre serveur nginx et les images sont servies depuis S3. Le navigateur vérifie l'en-tête AllowOrigin des images mais pas des JS, donc vous devrez modifier les paramètres S3. Si les images étaient seulement servies par nginx, add_header 'Access-Control-Allow-Origin' '*'; serait suffisant.

0 votes

Compris, ok cool, je l'ai mis sur les deux et croisons les doigts.

0voto

ldog Points 4156

Découvrez ce gist. Vous voudrez le personnaliser un peu en fonction de votre domaine et de vos préférences de cache.

0 votes

Merci Alex, cela semble être ce que je veux et je l'ai implémenté dans le nginx.conf mais cela n'autorise toujours pas mon javascript à appeler les fichiers depuis le CDN. Des idées de ce qui pourrait mal se passer - mon serveur a quelques fichiers .conf, je vais en essayer un autre pour éliminer cette possibilité...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X