Simile a Uploaded avatars and Gravatar not working with subfolder installation…
Tutti gli upload non funzionano nella mia installazione in sottocartella. Gli upload finiscono nella directory di upload effettiva, ma durante il rendering dei post, tutte le immagini ottengono src="".
Creazione di un post…
https://i.imgur.com/ofOUY4e.png
Dopo aver pubblicato…
https://i.imgur.com/EBmnD6e.png
Incredibilmente, se poi passo a un browser diverso (ora Chrome), apro la discussione (dove l’immagine è ancora danneggiata), ma poi clicco su modifica, l’immagine viene nuovamente visualizzata nell’anteprima di modifica!
https://i.imgur.com/3rQirhc.png
Questo conferma che l’upload sul server è andato a buon fine, cosa che ho verificato:
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
Ma semplicemente non sembra essere visualizzato nella pagina effettiva.
Lo stesso problema si verifica con altri upload, come gli avatar.
Alcune informazioni:
Sottocartella: /~cs6991/forum
app.yml
## questo è il modello del container Docker di Discourse autonomo all-in-one
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild app
##
## FAI MOLTA ATTENZIONE QUANDO EDIZI!
## I FILE YAML SONO ESTREMAMENTE SENSIBILI A ERRORI DI SPAZIATURA O ALLINEAMENTO!
## visita http://www.yamllint.com/ per convalidare questo file secondo necessità
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Decommenta queste due righe se desideri aggiungere Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
## quali porte TCP/IP deve esporre questo container?
## Se vuoi che Discourse condivida una porta con un altro webserver come Apache o nginx,
## vedi https://meta.discourse.org/t/17247 per i dettagli
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Imposta db_shared_buffers al massimo del 25% della memoria totale.
## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, o puoi sovrascriverlo
db_shared_buffers: "128MB"
## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
#db_work_mem: "40MB"
## Quale revisione Git dovrebbe usare questo container? (default: 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
## Quante richieste web concorrenti sono supportate? Dipende da memoria e core CPU.
## verrà impostato automaticamente da bootstrap in base alle CPU rilevate, o puoi sovrascriverlo
UNICORN_WORKERS: 2
## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
DISCOURSE_HOSTNAME: 'cgi.cse.unsw.edu.au'
## Decommenta se vuoi che il container venga avviato con lo stesso
## hostname (-h opzione) specificato sopra (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Elenco di email separate da virgole che diventeranno admin e sviluppatore
## alla prima registrazione esempio 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: '<<REDACTED>>'
## TODO: Il server di posta SMTP utilizzato per convalidare nuovi account e inviare notifiche
# INDIRIZZO SMTP, nome utente e password sono obbligatori
# ATTENZIONE il carattere '#' nella password SMTP può causare problemi!
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 # (opzionale, default true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (richiesto da alcuni provider)
DISCOURSE_NOTIFICATION_EMAIL: discourse@cs6991.email # (indirizzo da cui inviare le notifiche)
## Se hai aggiunto il template Lets Encrypt, decommenta sotto per ottenere un certificato SSL gratuito
#LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## L'indirizzo CDN http o https per questa istanza di Discourse (configurato per il pull)
## vedi https://meta.discourse.org/t/14857 per i dettagli
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## La chiave dell'indirizzo IP di geolocalizzazione maxmind per la ricerca dell'indirizzo IP
## vedi https://meta.discourse.org/t/-/137387/23 per i dettagli
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
DISCOURSE_RELATIVE_URL_ROOT: '/~cs6991/forum'
## Il container Docker è stateless; tutti i dati sono memorizzati in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## I plugin vanno qui
## vedi https://meta.discourse.org/t/19157 per i dettagli
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Qualsiasi comando personalizzato da eseguire dopo la build
run:
- exec: echo "Inizio comandi personalizzati"
## Se vuoi impostare l'indirizzo email 'Da' per la tua prima registrazione, decommenta e modifica:
## Dopo aver ricevuto la prima email di registrazione, ri-commenta la riga. Deve essere eseguita solo una volta.
#- 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 "Fine comandi personalizzati"
Tutto il resto, per quanto ne so, sembra funzionare correttamente, solo il rendering degli upload si comporta in modo piuttosto strano.
Ho verificato questo comportamento su una build completamente nuova, ovvero rm -rf /var/discourse, eliminando completamente docker e seguendo le istruzioni di installazione cloud + sottocartella.
Se ci sono ulteriori indagini che posso intraprendere, sono felice di fare quei passi. (scusa per i link imgur - non mi è ancora permesso incorporare più di 2 immagini qui!)
Saluti!