N’hésitez pas à visiter https://sales-community-staging.rainmakers.co/sales-community/ pour voir le problème. Aucune garantie qu’il restera accessible indéfiniment.
Je pense que c’est parce que /sales-community n’est pas ajouté à l’URL.
Faites-moi savoir si fournir app.yml ou nginx.conf serait utile.
Cela concerne la version: tests-passed.
J’ai essayé version: stable pour corriger le problème, mais cela ne se compile pas dans Docker pour le moment (mentionné dans un autre rapport de bug que j’ai vu plus tôt ; je repartais de zéro, pas d’une mise à niveau).
Oui. Tout le reste fonctionne (publication, e-mails, téléchargement d’avatars, HTTPS, etc.). Toutes les autres ressources ont des URLs de sous-dossier /sales-community correctes (comme illustré sur la capture d’écran). Seul le SVG est cassé.
Oui, le problème ne vient pas de la CSP car l’URL est tout simplement incorrecte : elle n’est apparemment pas préfixée par le chemin du sous-dossier. Je pense qu’il faut l’ajouter ici ?
Nous avons bien toute la logique en place pour les sprites SVG dans les scénarios de sous-dossiers, et elle est utilisée avec succès par plusieurs sites. Dans ce cas précis, nous avons rencontré un cas limite très spécifique. En examinant les variables clés sur le site de @vkozyrev (via la console du navigateur) :
Tout semble correct. Maintenant, lorsque nous chargeons la feuille de sprites SVG, nous utilisons loadScript, qui appelle à son tour Discourse.getURL. Cette fonction est chargée d’ajouter le préfixe du sous-dossier. Essayons :
En creusant un peu plus, on tombe sur cette ligne à l’intérieur de getUrl :
if (url.indexOf(Discourse.BaseUri) !== -1) return url;
Ou, en français : « si l’URL contient déjà le préfixe du sous-dossier, on abandonne ». Le problème ici est que le préfixe du sous-dossier de @vkozyrev (/sales-community) est inclus au milieu de l’URL de la feuille de sprites SVG :
J’ai rendu la vérification plus précise, de sorte qu’elle ne vérifie le préfixe du sous-dossier qu’au début de l’URL :
Cela me fait cependant penser à d’autres problèmes potentiels… par exemple, si quelqu’un voulait que son préfixe de sous-dossier soit /t ou /about, ou toute autre URL que nous utilisons dans Discourse
C’est un cas limite incroyable . Je développe en Rails (mode API uniquement), heureux de ne pas être allé trop loin dans le terrier du lapin, je me serais perdu dans le code client.
Au cas où vous seriez curieux, j’ai un proxy devant cela, donc le sous-domaine sales-community est caché aux utilisateurs ; ils ne verront que /sales-community devant l’URL de notre site principal. Le site principal est hébergé sur Heroku, je ne peux donc pas avoir une seule instance nginx qui gère tout.
Merci pour vos réponses rapides et la correction à tous !