Similaire à Uploaded avatars and Gravatar not working with subfolder installation…
Tous les téléchargements sont cassés sur mon installation en sous-dossier. Les téléchargements arrivent dans le répertoire de téléchargements réel, mais lors du rendu des publications, toutes les images obtiennent src="".
Faire une publication…
https://i.imgur.com/ofOUY4e.png
Après la publication…
https://i.imgur.com/EBmnD6e.png
De manière assez étonnante, si je passe ensuite à un autre navigateur (Chrome maintenant), que j’ouvre le sujet (où l’image est toujours cassée), mais que je clique ensuite sur modifier, l’image se rend à nouveau dans l’aperçu de modification !
https://i.imgur.com/3rQirhc.png
Cela confirme qu’il télécharge avec succès sur le serveur, ce que j’ai vérifié :
root@cs6991:/var/discourse# ./launcher enter app
x86_64 arch detected.
root@cs6991-app:/var/www/discourse# ls 'public/~cs6991/forum'
backups uploads
root@cs6991-app:/var/www/discourse# ls 'public/~cs6991/forum/uploads'
default
root@cs6991-app:/var/www/discourse# ls 'public/~cs6991/forum/uploads/default/original/1X/'
08335563eac3a393e60a902d4d38cffdfa6d967d.png 3eee67e6460792667bab4f2248ad4643be4feae3.png
29e403dabcfee32379629fb6d844354193e278ba.png 42ecfcb27b534acc9f3436fa7d291c2fca106e57.png
Mais cela ne semble tout simplement pas se rendre sur la page réelle.
Le même problème se produit avec d’autres téléchargements, tels que les avatars.
Quelques informations :
Sous-dossier : /~cs6991/forum
app.yml
## voici le modèle de conteneur Discourse autonome tout-en-un
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ TRÈS PRUDENT LORS DE LA MODIFICATION !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## voir https://meta.discourse.org/t/17247 pour plus de détails
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Définissez db_shared_buffers à un maximum de 25 % de la mémoire totale.
## sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
db_shared_buffers: "128MB"
## peut améliorer les performances de tri, mais augmente l'utilisation de la mémoire par connexion
#db_work_mem: "40MB"
## Quelle révision Git ce conteneur doit-il utiliser ? (défaut : tests-passed)
#version: tests-passed
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
## sera défini automatiquement par bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
UNICORN_WORKERS: 2
## TODO : Le nom de domaine auquel cette instance Discourse répondra
## Obligatoire. Discourse ne fonctionnera pas avec un simple numéro IP.
DISCOURSE_HOSTNAME: 'cgi.cse.unsw.edu.au'
## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
## nom d'hôte (-h option) que celui spécifié ci-dessus (défaut "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO : Liste des e-mails séparés par des virgules qui seront faits administrateurs et développeurs
## lors de la première inscription, exemple 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: '<<REDACTED>>'
## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
# ADRESSE SMTP, nom d'utilisateur et mot de passe sont requis
# ATTENTION le caractère '#' dans le mot de passe SMTP peut causer des problèmes !
DISCOURSE_SMTP_ADDRESS: email-smtp.ap-southeast-2.amazonaws.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: <<REDACTED>>
DISCOURSE_SMTP_PASSWORD: <<REDACTED>>
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (facultatif, défaut true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (requis par certains fournisseurs)
DISCOURSE_NOTIFICATION_EMAIL: discourse@cs6991.email # (adresse d'envoi des notifications)
## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
#LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## L'adresse CDN http ou https pour cette instance Discourse (configurée pour tirer)
## voir https://meta.discourse.org/t/14857 pour plus de détails
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## La clé d'adresse IP Maxmind pour la recherche d'adresses IP de géolocalisation
## voir https://meta.discourse.org/t/-/137387/23 pour plus de détails
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
DISCOURSE_RELATIVE_URL_ROOT: '/~cs6991/forum'
## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Les plugins vont ici
## voir https://meta.discourse.org/t/19157 pour plus de détails
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Toutes les commandes personnalisées à exécuter après la construction
run:
- exec: echo "Début des commandes personnalisées"
## Si vous souhaitez définir l'adresse e-mail 'De' pour votre première inscription, décommentez et modifiez :
## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit s'exécuter qu'une seule fois.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec:
cd: $home
cmd:
- mkdir -p public/~cs6991/forum
- cd public/~cs6991/forum && ln -s ../../uploads && ln -s ../../backups
- replace:
global: true
filename: /etc/nginx/conf.d/discourse.conf
from: proxy_pass http://discourse;
to: |
rewrite ^/(.*)$ /~cs6991/forum/$1 break;
proxy_pass http://discourse;
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: etag off;
to: |
etag off;
location /~cs6991/forum {
rewrite ^/~cs6991/forum/?(.*)$ /$1;
}
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: $proxy_add_x_forwarded_for
to: $http_your_original_ip_header
global: true
- exec: echo "Fin des commandes personnalisées"
Tout le reste, d’après ce que je peux dire, semble fonctionner correctement - seule le rendu des téléchargements agit de manière assez étrange.
J’ai vérifié ce comportement sur une construction complètement nouvelle - c’est-à-dire rm -rf /var/discourse, en supprimant complètement docker, et en suivant les instructions d’installation cloud + sous-dossier.
S’il y a d’autres investigations que je peux entreprendre, je suis heureux de les réaliser. (désolé pour les liens imgur - je ne suis pas encore autorisé à intégrer plus de 2 images ici !)
Cordialement !