Discourse caricato parzialmente ed errori 404 da alcuni file css, js, svg

Saluti a tutti i membri del forum Discourse.

In precedenza ho installato Discourse con successo seguendo questa link, ma questa volta ho riscontrato il seguente errore e ho bisogno del vostro aiuto per l’installazione.

Una volta risolto il problema, condividerò come l’ho risolto.

Dal browser web, durante l’installazione di Discourse, ho ottenuto il seguente errore:

[Errore] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (wizard_c4aee3fa9261fde8baf9c596832d10e16a40c298.css, riga 0)
[Errore] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (wizard-vendor-e639f7bedb553c62a51539714bacf10a7bb9c2a68ee57d9d9e9da130ede31d8b.js, riga 0)
[Errore] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (tada.svg, riga 0)
[Errore] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js, riga 0)
[Errore] Esecuzione rifiutata di https://forum.sangean.co.kr/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js come script perché era impostato “X-Content-Type: nosniff” e il suo Content-Type non è un MIME type per script.
[Errore] Esecuzione rifiutata di https://forum.sangean.co.kr/assets/wizard-vendor-e639f7bedb553c62a51539714bacf10a7bb9c2a68ee57d9d9e9da130ede31d8b.js come script perché era impostato “X-Content-Type: nosniff” e il suo Content-Type non è un MIME type per script.
[Errore] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (tada.svg, riga 0)

Il mio ambiente: Ubuntu 18.94, Nginx come reverse proxy.

Ho eseguito l’intera procedura di installazione come root, quindi ecco le informazioni di “ls -al” per /var/discourse/shared/standalone:

Penso che si tratti di un problema legato ai permessi, ma non ne sono sicuro.

drwxr-xr-x 11 root root 4096 Apr 4 05:50 .
drwxr-xr-x 3 root root 4096 Apr 4 04:45 ..
drwxr-xr-x 2 1000 www-data 4096 Apr 4 04:45 backups
drwxr-xr-x 4 root root 4096 Apr 4 04:45 log
drwxr-xr-x 2 uuidd uuidd 4096 Apr 4 04:45 postgres_backup
drwx------ 19 uuidd uuidd 4096 Apr 4 05:50 postgres_data
drwxrwxr-x 3 uuidd uuidd 4096 Apr 4 05:50 postgres_run
drwxr-xr-x 2 landscape ssh 4096 Apr 4 06:00 redis_data
drwxr-xr-x 4 root root 4096 Apr 4 05:50 state
drwxr-xr-x 4 1000 www-data 4096 Apr 4 05:50 tmp
drwxr-xr-x 3 1000 www-data 4096 Apr 4 04:47 uploads

La mia configurazione /nginx/sites-available/forum.sangean.co.kr:

server {
listen 80; listen [::]:80;
server_name forum.sangean.co.kr;

return 301 https://$host$request_uri;

}

server {
server_name forum.sangean.co.kr www.forum.sangean.co.kr;

access_log /var/log/nginx/forum.sangean.co.kr.access.log ;
error_log /var/log/nginx/forum.sangean.co.kr.error.log;

include common/locations-wo.conf;
include /var/www/forum.sangean.co.kr/conf/nginx/*.conf;

location / {
    proxy_pass http://forum.sangean.co.kr:25654/;
    proxy_set_header Host $http_host;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_redirect http://forum.sangean.co.kr:25654/ https://forum.sangean.co.kr;
}

}

Se avete bisogno dei file di configurazione nginx inclusi o dei file di configurazione di Discourse, posso modificarli o rispondere a questo post.

Grazie mille.

La tua configurazione nginx non sembra corretta. Puoi condividere anche il tuo file yml?

Immagino che tu stia cercando di eseguire Discourse sulla porta 25654, mentre puoi facilmente utilizzare il template dei socket di Discourse per eseguirlo su un socket e usare il proxy per inoltrare le richieste al socket.

Puoi comprendere meglio la configurazione nginx con questa guida: Add an offline page to display when Discourse is rebuilding or starting up

@itsbhanusharma Grazie mille per la tua risposta

Leggerò e implementerò anch’io il tuo post.

Ecco il mio file app.yml.

## questo è il template del container Docker Discourse "tutto in uno" e autonomo
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild app
##
## FAI *MOLTA* ATTENZIONE DURANTE LA MODIFICA!
## I FILE YAML SONO MOLTO, MOLTO SENSIBILI A ERRORI DI SPAZIATURA O ALLINEAMENTO!
## visita http://www.yamllint.com/ per convalidare questo file, se necessario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  #- "templates/web.ratelimited.template.yml"
## Rimuovi il commento da queste due righe se desideri aggiungere Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## quali porte TCP/IP dovrebbe esporre questo container?
## Se desideri che Discourse condivida una porta con un altro server web come Apache o nginx,
## consulta https://meta.discourse.org/t/17247 per i dettagli
expose:
  - "25654:80"
  #- "80:80"   # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

## Imposta db_shared_buffers a un massimo del 25% della memoria totale.
  ## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, oppure puoi sovrascriverlo
  db_shared_buffers: "256MB"

  ## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
  #db_work_mem: "40MB"

  ## Quale revisione di Git dovrebbe utilizzare questo container? (predefinito: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Quanti richieste web simultanee sono supportate? Dipende dalla memoria e dai core della CPU.
  ## verrà impostato automaticamente da bootstrap in base alle CPU rilevate, oppure puoi sovrascriverlo
  UNICORN_WORKERS: 3

  ## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
  ## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
  DISCOURSE_HOSTNAME: 'forum.sangean.co.kr'

  ## Rimuovi il commento se desideri che il container venga avviato con lo stesso

## nome host (opzione -h) specificato sopra (predefinito "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Elenco di indirizzi email separati da virgola che diventeranno amministratori e sviluppatori
  ## all'iscrizione iniziale, ad esempio 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'admin@sangean.co.kr'

  ## TODO: Il server SMTP utilizzato per validare 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: smtp.elasticemail.com
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: admin@sangean.co.kr
  DISCOURSE_SMTP_PASSWORD: 58BD8932EDB9FEF87F8B3F0A75F482295B4B
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, predefinito true)

  ## Se hai aggiunto il template Lets Encrypt, rimuovi il commento qui 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 recupero)
  ## consulta https://meta.discourse.org/t/14857 per i dettagli
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## Il container Docker è senza stato; tutti i dati sono archiviati 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
## consulta 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 costruzione
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Se desideri impostare l'indirizzo email 'From' per la tua prima registrazione, rimuovi il commento e modifica:
  ## Dopo aver ricevuto la prima email di iscrizione, rimetti il commento sulla riga. Deve essere eseguito solo una volta.
  - exec: rails r "SiteSetting.notification_email='admin@sangean.co.kr'"
  - exec: echo "Fine dei comandi personalizzati"

L’unica cosa che posso suggerire qui è implementare il post che ho proposto… In questo modo, non avrai problemi con il reverse proxy.