Vous pouvez jeter un œil à la console javascript. Je suppose que soit le CDN est incorrect, soit vous n’avez pas bien géré la partie précompilation des assets.
Je viens de réactiver les lignes et de reconstruire le conteneur. Maintenant, le site affiche à nouveau une page blanche !
La capture d’écran ci-dessous montre où j’ai placé les codes dans mon app.yml. Comme vous pouvez le voir, j’ai placé les codes de configuration S3 sous DISCOURSE_NOTIFICATION_EMAIL
Je ne l’ai pas fait. Mais j’ai résolu le problème et je suis convaincu de ne pas avoir correctement configuré le CDN S3. J’utilise StackPath et je ne suis pas sûr de ce qu’il faut utiliser pour l’adresse d’origine et l’en-tête d’hôte.
Une autre chose dont je ne suis pas sûr est la façon de configurer la fonction de liste de fichiers de mon compartiment DigitalOcean Space. Maintenant, j’utilise Restrict Listing. Est-ce que cela affecte quoi que ce soit ?
J’ai mis en commentaire DISCOURSE_S3_CDN_URL et le site se charge. Cela confirme que ma configuration du CDN S3 est le problème, mais je ne sais toujours pas comment le configurer correctement.
Avez-vous terminé toutes les tâches de la section Configuration ?
Si je me souviens bien, la définition de DISCOURSE_S3_CDN_URL dans app.yml exige que les actifs soient stockés sur S3.
Je ne sais pas bien comment fonctionne Discourse. Je suis juste un autre webmaster qui copie-colle du monde PHP, mais je me demande toujours pourquoi il faudrait déclarer le même CDN deux fois.
Je n’utilise pas DISCOURSE_CDN_URL car j’ai DISCOURSE_S3_CDN_URL (et probablement que la documentation que j’ai lue ne m’a pas guidé pour l’utiliser). J’ai donc essayé.
J’ai ajouté DISCOURSE_CDN_URL: <cdn-url>. La reconstruction n’a pas donné d’erreurs, mais j’ai obtenu une erreur 502. Quand je l’ai retiré, mon forum a fonctionné à nouveau.
Cependant, vos problèmes peuvent survenir à cause d’une mauvaise configuration ailleurs. Mais j’aime les solutions faciles, même quand j’ai tort, et je blâme la situation quand vous indiquez deux fois le CDN pour des besoins différents. Ou quelque chose comme ça.
DISCOURSE_CDN_URL et DISCOURSE_S3_CDN_URL sont différents. Alors que DISCOURSE_CDN_URL pointe vers votre forum, DISCOURSE_S3_CDN_URL pointe vers votre URL de stockage S3.
L’idée est que DISCOURSE_CDN_URL serve des actifs téléchargeables comme le CSS, tandis que DISCOURSE_S3_CDN_URL serve des actifs téléchargeables comme le JS, les images et les téléchargements d’utilisateurs.
J’ai réussi à tout faire fonctionner, sauf mon CDN de stockage S3. Dès que j’active cette partie dans le fichier app.yml, mon forum s’affiche en blanc.
Un coup d’œil sur le réseau de l’inspecteur du navigateur montre que les actifs livrés par DISCOURSE_S3_CDN_URL affichent une erreur 404.
C’est assez… inhabituel pour moi. Mais comme je l’ai dit, j’ai une expérience très limitée. J’utilise AWS comme CDN via S3/CloudFlare dans WordPress, mais uniquement pour les fichiers statiques — les scripts nécessiteraient une autre configuration. Je suppose qu’il n’y a aucun intérêt à comparer WP et Discourse car ce sont des plateformes fondamentalement si différentes. Mais j’essaie de comprendre les principes du concept ici.
Eh bien, j’ai beaucoup plus maintenant que vous
EDIT : Et j’avais totalement tort dans ma configuration aussi Tous les JS, images, etc. sont servis via le CDN. Mais je n’ai pas pu y trouver les CSS.
Le problème que j’ai maintenant est que mon site essaie de charger des ressources .gz.js depuis le CDN de stockage d’objets, mais les fichiers ne s’y trouvent pas. Comment puis-je forcer Discourse à télécharger ces ressources .gz.js vers le stockage d’objets ?
J’ai déjà cette ligne dans mon app.yml. J’ai mis le code ci-dessus après avoir défini les plugins. Ou dois-je les déplacer avant la liste des plugins ?
Avec les conseils que vous (@Falco) et @pfaffman avez fournis, j’ai terminé cette configuration avec succès.
Pour les autres membres de la communauté qui souhaitent voir mes configurations. Voici les captures d’écran. J’ai également rédigé un guide complet pendant que je configurais tout cela.
J’ai utilisé StackPath et DigitalOcean Spaces. Mon guide comprend une étape par étape de toute la configuration. Si quelqu’un a besoin de ce guide, je serai heureux de poster l’URL sur demande.
Merci beaucoup à @Falco et @pfaffman pour votre aide. C’est la première fois que je configure Discourse, mais j’ai terminé les parties les plus difficiles (je pense !). Je vous suis très reconnaissant !.