29 novembre 2012

Magento : back office, CDN et problèmes de cross-domain

Si vous utilisez une instance de la plateforme Magento avec un CDN, peut-être rencontrerez-vous le problème suivant dans le backend : certaines fonctionnalités utilisant JavaScript (notamment l'éditeur WYSIWYG) peuvent ne pas fonctionner. TinyMCE peut par exemple ouvrir des popups qui restent vides. En regardant la console, vous aurez l'erreur suivante : "Unsafe JavaScript attempt to access frame with URL [domaine principal] from frame with URL [domaine du DNS]. Domains, protocols and ports must match.".

Dans System > Configuration > General > Web > Unsecure et Secure, là où on peut configurer les domaines à utiliser, Magento précise que si le domaine utilisé pour le JS n'est pas un sous-domaine du domaine principal, des erreurs peuvent survenir. Sauf que le problème décrit précédemment a été rencontré justement avec un sous-domaine du domaine principal.

La seule solution est alors de forcer Magento à ne pas utiliser le CDN pour le back office. Pour cela, il faut utiliser "{{unsecure_base_url}}" et "{{secure_base_url}}" pour configurer les URLs en scope "Default config". Puis, dans le scope de chaque website, configurer les URLs en utilisant l'URL du CDN.

Aucun commentaire:

Enregistrer un commentaire