Erreur CORS lors du chargement d'une police personnalisée

Je tente d’utiliser une police spéciale dans l’un des composants de mon thème. J’ai suivi les instructions de ce post :

Voici le CSS de mon composant :

@font-face {
  font-family: 'northwood';
  font-style: regular;
  src: url($northwoodhigh) format('woff2');
}

.category-list tbody .category h3 a[href] {
    color: #ccc;
    font-family: 'northwood', cursive;
    font-size: 135%;
    word-spacing: 3px;
}

J’ai ajouté mon URL Cloudfront aux paramètres CORS comme ceci :

Mais cela ne fonctionne pas — malheureusement, je reçois une erreur « Cross-origin request blocked » dans la console lorsque je charge une page avec ce CSS :

7d26013f5bcde40cc8778378940e1e53_Image 2020-04-25 at 6.38.04 PM

(Désolé pour l’image très petite.) Quelqu’un a-t-il des conseils ? Je suis bloqué.

Avez-vous défini DISCOURSE_ENABLE_CORS dans votre fichier app.yml comme suggéré par la description ?

1 « J'aime »

Pas sûr — y a-t-il un moyen de vérifier ? (Je suis sur une instance Discourse hébergée, donc je ne peux pas consulter directement les fichiers de configuration.)

Édit : J’ai envoyé un e-mail à notre fournisseur d’hébergement pour voir si c’est le problème.

Mise à jour : mon hébergeur confirme que DISCOURSE_ENABLE_CORS est défini sur TRUE.

Je suis donc toujours perplexe.

Je viens de tester cela, exactement comme vous l’avez décrit, sur un site configuré avec un CDN et cela a fonctionné. Donc, je pense que cela pourrait être limité à votre site.

Je pense que le paramètre DISCOURSE_ENABLE_CORS est l’inverse de ce que vous voulez. Ajouter des domaines à ce paramètre permettra aux requêtes provenant de ces domaines d’accéder à votre domaine Discourse, et non l’inverse.

Ce que vous voulez, c’est permettre aux requêtes provenant de votre domaine Discourse d’accéder au fichier sur votre CDN. Je pense que votre CDN bloque ces requêtes. Vous pouvez le confirmer en exécutant quelque chose comme ceci dans une fenêtre de terminal, après avoir bien sûr modifié les valeurs.

curl -H "origin: VOTRE_URL_DE_SITE" -v "CHEMIN_VERS_LA_POLICE_SUR_VOTRE_CDN"

Si tout est configuré correctement, vous devriez voir quelque chose comme ceci dans les en-têtes de la réponse

Access-Control-Allow-Origin: *
2 « J'aime »