Discourse cargado parcialmente y errores 404 en algunos archivos css, js, svg

Hola, miembros del foro Discourse.

Antes instalé Discourse correctamente siguiendo este enlace, pero esta vez obtuve el siguiente error, por lo que necesito su ayuda para la instalación.

Cuando resuelva este problema, me gustaría compartir cómo lo solucioné.

Desde el navegador web, obtuve el siguiente error al instalar Discourse.

[Error] No se pudo cargar el recurso: el servidor respondió con un estado 404 () (wizard_c4aee3fa9261fde8baf9c596832d10e16a40c298.css, línea 0)
[Error] No se pudo cargar el recurso: el servidor respondió con un estado 404 () (wizard-vendor-e639f7bedb553c62a51539714bacf10a7bb9c2a68ee57d9d9e9da130ede31d8b.js, línea 0)
[Error] No se pudo cargar el recurso: el servidor respondió con un estado 404 () (tada.svg, línea 0)
[Error] No se pudo cargar el recurso: el servidor respondió con un estado 404 () (ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js, línea 0)
[Error] Se denegó la ejecución de https://forum.sangean.co.kr/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js como script porque se indicó “X-Content-Type: nosniff” y su Content-Type no es un tipo MIME de script.
[Error] Se denegó la ejecución de https://forum.sangean.co.kr/assets/wizard-vendor-e639f7bedb553c62a51539714bacf10a7bb9c2a68ee57d9d9e9da130ede31d8b.js como script porque se indicó “X-Content-Type: nosniff” y su Content-Type no es un tipo MIME de script.
[Error] No se pudo cargar el recurso: el servidor respondió con un estado 404 () (tada.svg, línea 0)

Mi entorno: Ubuntu 18.94, proxy inverso Nginx.

Realicé todo el proceso de instalación como root, así que aquí está la información de “ls -al” de /var/discourse/shared/standalone

Supongo que es un problema relacionado con los permisos, pero no estoy seguro.

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

Mi configuración de /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;
}

}

Si necesita los archivos de configuración de nginx o los archivos de configuración de Discourse que se incluyen, puedo editar o responder a este mensaje.

Muchas gracias.

Tu configuración de nginx no parece correcta. ¿Podrías compartir también tu archivo yml?

Supongo que estás intentando ejecutar Discourse en el puerto 25654, pero puedes usar fácilmente la plantilla de sockets de Discourse para ejecutarlo en un socket y utilizar el proxy para reenviar las solicitudes al socket.

Puedes comprender mejor la configuración de nginx con esta guía: Add an offline page to display when Discourse is rebuilding or starting up

@itsbhanusharma Muchas gracias por tu respuesta

Leeré e implementaré tu publicación por mi cuenta.

Aquí está mi archivo app.yml.

## Esta es la plantilla del contenedor Docker de Discourse todo-en-uno, independiente
##
## Después de realizar cambios en este archivo, DEBES reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TEN *MUCHO* CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON SUPER SUPER SENSIBLES A ERRORES EN ESPACIOS EN BLANCO O ALINEACIÓN!
## visita http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  #- "templates/web.ratelimited.template.yml"
## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para obtener detalles
expose:
  - "25654:80"
  #- "80:80"   # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

## Establece db_shared_buffers en un máximo del 25% de la memoria total.
  ## se establecerá automáticamente durante el arranque según la RAM detectada, o puedes sobrescribirlo
  db_shared_buffers: "256MB"

  ## puede mejorar el rendimiento de ordenación, pero aumenta el uso de memoria por conexión
  #db_work_mem: "40MB"

  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
  #version: tests-passed

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

  ## ¿Cuántas solicitudes web simultáneas se admiten? Depende de la memoria y los núcleos de CPU.
  ## se establecerá automáticamente durante el arranque según las CPU detectadas, o puedes sobrescribirlo
  UNICORN_WORKERS: 3

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  ## Obligatorio. Discourse no funcionará con una dirección IP desnuda.
  DISCOURSE_HOSTNAME: 'forum.sangean.co.kr'

  ## Descomenta si deseas que el contenedor se inicie con el mismo

## nombre de host (opción -h) que se especificó anteriormente (predeterminado "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
  ## al registrarse inicialmente, ejemplo 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'admin@sangean.co.kr'

  ## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
  # La dirección, el nombre de usuario y la contraseña de SMTP son obligatorios
  # ADVERTENCIA: el carácter '#' en la contraseña de SMTP puede causar problemas
  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           # (opcional, predeterminado true)

  ## Si agregaste la plantilla de Lets Encrypt, descomenta a continuación para obtener un certificado SSL gratuito
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## La dirección CDN http o https para esta instancia de Discourse (configurada para extraer)
  ## consulta https://meta.discourse.org/t/14857 para obtener detalles
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## El contenedor Docker es sin estado; todos los datos se almacenan en /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para obtener detalles
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Cualquier comando personalizado para ejecutar después de la construcción
run:
  - exec: echo "Inicio de comandos personalizados"
  ## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y cambia:
  ## Después de recibir el primer correo electrónico de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.
  - exec: rails r "SiteSetting.notification_email='admin@sangean.co.kr'"
  - exec: echo "Fin de comandos personalizados"

Lo único que puedo sugerir aquí es implementar la publicación que sugerí… De esa manera, no tendrás problemas con el proxy inverso.