Anteprima non funzionante quando si utilizza l'object store - URL markdown-it errato

Quando si configura Object Store, l’anteprima per argomenti/post non funziona.

Discourse è configurato con un Object Store
L’installazione è su docker, seguendo la documentazione.
Versione di Discourse: 2.8.0.beta11

Ecco le mie variabili d’ambiente per le configurazioni S3:

  DISCOURSE_CDN_URL: https://discourse.liiib.re
  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: default
  DISCOURSE_S3_ENDPOINT: https://hot-objects.liiib.re
  DISCOURSE_S3_ACCESS_KEY_ID: ACCESS_KEY_ID
  DISCOURSE_S3_SECRET_ACCESS_KEY: SUPER_SECRET_KEY
  DISCOURSE_S3_CDN_URL: https://forum-beta-liiib-re.hot-objects.liiib.re
  DISCOURSE_S3_BUCKET: forum-beta-liiib-re
  DISCOURSE_S3_INSTALL_CORS_RULE: false

Quando controllo l’ispettore del browser, l’URL per markdown-it-bundle punta a https:https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js

Non dovrebbe anteporre https: a DISCOURSE_S3_CDN_URL poiché è già presente.

Nella console ho il seguente errore:

Caricamento fallito per lo <script> con origine “https://discourse.liiib.re/https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js”.

Immagino che il mio browser stia reindirizzando l’URL https:https://... a questo.

Ho provato a cercare, senza successo, dove viene impostato questo URL.

Se qualcuno può indicarmi la giusta direzione :slight_smile:

Grazie per il tuo aiuto

2 Mi Piace

Penso che sia qui discourse/app/helpers/application_helper.rb at 70af45055ae24dc7eb1a20678a52ed3ec69421c3 · discourse/discourse · GitHub

Anche questa era la mia ipotesi, ho dimenticato di menzionarlo.

Beh, non sono sicuro al 100% perché non ho un ambiente di sviluppo adeguato per testare tutto a fondo, ma non sembra provenire da lì.

Da quello che ho visto, script_asset_path('markdown-it-bundle') sta restituendo l’URL corretto. E penso che venga utilizzato per costruire questo meta tag HTML che sembra a posto.

<meta id="data-discourse-setup" data-cdn="https://discourse.liiib.re" data-base-url="https://discourse.liiib.re" data-base-uri="" data-environment="production" data-letter-avatar-version="5_c12935382690395be92856801563c2b7" data-markdown-it-url="https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js" data-service-worker-url="service-worker.js" data-default-locale="en" data-asset-version="be5bda1657984e9e27d7d3c27ab24add" data-disable-custom-css="false" data-highlight-js-path="/highlight-js/discourse.liiib.re/084d101d62e4ceb91462fa1464b341511141973f.js" data-svg-sprite-path="/svg-sprite/discourse.liiib.re/svg-1-c105fc3106297bc864bbadbd418cf380c71e3a4b.js" data-enable-js-error-reporting="true" data-color-scheme-is-dark="false" data-user-color-scheme-id="4" data-user-dark-scheme-id="1" data-s3-cdn="https://forum-beta-liiib-re.hot-objects.liiib.re" data-s3-base-url="//forum-beta-liiib-re.hot-objects.liiib.re">

Sembra che sia il js che sta inserendo l’URL sbagliato con il prefisso https:. Non sono riuscito a trovare da dove provenga, però.

Succede solo quando apro l’editor che compare un <script src="https:https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js"></script>.

2 Mi Piace

Non credo che funzionerà con S3 CDN URL che è un sottodominio dell’endpoint S3. Puoi provare a usare sottodomini distinti allo stesso livello per entrambi?

2 Mi Piace

Ok, ci sono di nuovo. Sembra che tu abbia ragione.

Ho provato a impostare DISCOURSE_S3_CDN_URL come sottodirectory del bucket https://hot-objects.liiib.re/forum-beta-liiib-re e ora funziona.

Pensi che sarebbe ragionevole consentire al CDN S3 di essere un sottodominio dell’endpoint S3?

Nel mio caso, che potrebbe essere simile ad altre configurazioni self-hosted, non sto utilizzando un CDN esterno (nginx sopra minio può essere considerato il CDN) quindi non ho bisogno di impostarlo su un altro dominio.
In realtà ho impostato il sottodominio del bucket perché, credo, è necessario per discourse per gestire i caricamenti.

Comunque ha risolto il problema e funziona per me. Grazie per l’aiuto!

1 Mi Piace