Puedes echar un vistazo a la consola de javascript. Supongo que o bien la CDN es incorrecta o no has configurado correctamente la compilación previa de los assets.
Acabo de volver a habilitar las líneas y reconstruí el contenedor. ¡Ahora, el sitio muestra una página en blanco de nuevo!
La captura de pantalla a continuación muestra dónde coloqué los códigos en mi app.yml. Como puedes ver, coloqué los códigos de configuración de S3 debajo de DISCOURSE_NOTIFICATION_EMAIL
No he hecho eso. Pero he estado solucionando problemas y creo firmemente que no configuré correctamente el S3 CDN. Estoy usando StackPath y no estoy seguro de qué usar en la dirección de Origen y el encabezado de Host.
Otra cosa que no tengo clara es cómo configurar la función de listado de archivos de mi bucket de DigitalOcean Space. Ahora mismo, estoy usando Restrict Listing. ¿Afecta esto en algo?
Comenté DISCOURSE_S3_CDN_URL y el sitio carga. Esto confirma que mi configuración de la CDN de S3 es el problema, pero todavía no sé cómo configurarla correctamente.
No sé mucho sobre cómo funciona Discourse. Soy otro webmaster que copia y pega del mundo PHP, pero todavía me pregunto por qué sería necesario declarar el mismo CDN dos veces.
No uso DISCOURSE_CDN_URL porque tengo DISCOURSE_S3_CDN_URL (y probablemente ninguna documentación que leí me guió a usarlo). Así que lo intenté.
Agregué DISCOURSE_CDN_URL: <cdn-url>. La reconstrucción no arrojó errores, pero obtuve un error 502. Cuando lo eliminé, mi foro volvió a funcionar.
Aún así, sus problemas pueden ocurrir debido a alguna mala configuración en otro lugar. Pero me gustan las soluciones fáciles, incluso cuando me equivoco, y culpo a la situación cuando le dices dos veces el CDN para diferentes necesidades. O algo así.
DISCOURSE_CDN_URL y DISCOURSE_S3_CDN_URL son diferentes. Mientras que DISCOURSE_CDN_URL apunta a tu foro, DISCOURSE_S3_CDN_URL apunta a la URL de tu almacenamiento S3.
La idea es que DISCOURSE_CDN_URL sirva activos que se puedan extraer (pullable) como CSS, mientras que DISCOURSE_S3_CDN_URL sirva activos que se puedan enviar (pushable) como JS, imágenes y cargas de usuario.
He podido hacer que todo funcione excepto mi CDN de almacenamiento S3. Cada vez que habilito esa parte en el archivo app.yml, mi foro se muestra en blanco.
Una inspección de la red en el elemento de inspección del navegador muestra que los activos entregados por DISCOURSE_S3_CDN_URL muestran un error 404.
Eso es bastante… desconocido para mí. Pero como dije, tengo una experiencia muy limitada. Estoy usando AWS como CDN a través de S3/CloudFlare en WordPress, pero solo para archivos estáticos; los scripts necesitarían otra configuración. Supongo que no tiene sentido comparar WP y Discourse porque son plataformas fundamentalmente tan diferentes. Pero estoy tratando de entender los principios del concepto aquí.
Bueno, ahora tengo mucho más que tú
EDITAR: Y también me equivoqué totalmente en mi configuración Todos los JS, imágenes, etc. se sirven a través de CDN. Pero no pude encontrar las CSS allí.
El problema que tengo ahora es que mi sitio está intentando cargar activos .gz.js desde el CDN de Object Storage, pero los archivos no están allí. ¿Cómo obligo a Discourse a cargar esos activos .gz.js en el Object Storage?
Eso está mal. La clave YAML after_assets_precompile debe estar debajo de la clave hooks.
Por defecto, enviamos como:
## Los plugins van aquí
## ver https://meta.discourse.org/t/19157 para más detalles
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
y quieres
## Los plugins van aquí
## ver https://meta.discourse.org/t/19157 para más detalles
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
Con la guía que usted (@Falco) y @pfaffman proporcionaron, acabo de completar con éxito esta configuración.
Para otros miembros de la comunidad que deseen ver mis configuraciones. Aquí están las capturas de pantalla. También escribí una guía completa mientras configuraba todo esto.
Utilicé StackPath y DigitalOcean Spaces. Mi guía incluye un paso a paso de toda la configuración. Si alguien necesita esta guía, estaré encantado de publicar la URL cuando se solicite.
@Falco y @pfaffman, muchas gracias a ambos por su ayuda. Es la primera vez que configuro Discourse, ¡pero acabo de completar las partes más difíciles (creo!). ¡Estoy muy agradecido!