Permitir página de inicio arbitraria (por Jay Pfaffman)

Bueno, @hellekin pensó que esto merecía su propio tema. No estoy muy seguro de que esté listo para ello, pero aquí está. Revisaré las cosas a principios de la próxima semana y trataré de asegurarme de que parezca algo que otras personas puedan realmente utilizar. :wink:

Como él dijo:

17 Me gusta

@pfaffman He intentado usar la siguiente configuración:

  1. instalar tu componente de tema
  2. establecer home_url_override en https://thx.zoethical.org/TransHack_·Xist·nce…
  3. agregar alguna configuración de Nginx para coincidir con el archivo HTML:
        location = /TransHack_·Xist·nce… {
                default_type text/html;
                alias /srv/www/zoethical.org/thx/home.html;
        }

Llamar al archivo directamente funciona, pero llamar a https://thx.zoethical.org falla. Como noté una verificación en los enlaces permanentes, intenté agregar uno para /. Pero tampoco funcionó. ¿Podría ser un problema con la caché?

Por si acaso, aquí está el contenido del archivo home.html:

<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <title> TransHack ·Xist·nce… </title>
                <link rel="stylesheet" href="/thx.css">
        </head>
        <body class="thx home">
                <header>
                        <h1>THX</h1>
                </header>
                <section id="agora">
                        <h2><a href="https://thx.zoethical.org/c/agora/1">Agora</a></h2>
                        <d-topics-list discourse-url="https://thx.zoethical.org" per-page="5" category="1"></d-topics-list>
                </section>
                <section id="fonderie-de-fiction">
                        <h2><a href="https://thx.zoethical.org/c/fonderie-de-fiction/7">Fonderie de fiction</a></h2>
                        <d-topics-list discourse-url="https://thx.zoethical.org" per-page="5" category="7"></d-topics-list>
                </section>
                <script src="https://thx.zoethical.org/javascripts/embed-topics.js"></script>
        </body>
</html>

Edición: Creo que podría deberse a que la instancia requiere iniciar sesión (SSO), y en ese caso hay un mal funcionamiento. Podría estar dispuesto a realizar más pruebas, incluyendo abrir un poco más la instancia. Después de hacer el sitio público, aún obtengo “¡Ups! Esa página no existe o es privada” al acceder a la página de inicio. ¿Alguna idea de por qué?

3 Me gusta

¿Es la página de inicio la que estás configurando en tu sitio de Discourse? Creo que solo quieres poner la URL que comienza con /.

2 Me gusta

Ah, ¿entonces el archivo debería ser el predeterminado, normalmente index.html?

¡De hecho, funciona! ¿El componente espera que la URL sea un archivo index, verdad?

Solo tuve que renombrar mi home.html a index.html y cambiar la configuración de Nginx a:

        # más configuración...
        root   /srv/www/zoethical.org/thx;
        index  index.html; # <- esto es importante

        location = /TransHack_·Xist·nce… {
                default_type text/html;
                alias /srv/www/zoethical.org/thx/index.html; # <- y coincide
        }
        location / {
                # magia de nginx para probar el archivo local antes de hacer proxy...
                try_files $uri $uri/ $uri.html @discourse;
        }
        location @discourse {
                # proxy normal de Discourse
        }

Entonces, para resumir…

Si estás usando una página estática en el mismo sitio que la instancia de Discourse, asegúrate de que tu servidor web lea los archivos estáticos (por ejemplo, CSS relacionados) antes de hacer proxy de las solicitudes a Discourse. ¡Tadaa!

¡Gracias @pfaffman!

3 Me gusta

De hecho, queda un error: aunque acceder a la URL https://thx.zoethical.org funciona desde el exterior, una vez dentro de Discourse, al hacer clic en el logotipo no se carga la página sobrescrita. Noté una verificación de enlace permanente, así que probé varias opciones, todas sin éxito:

  1. Crear un enlace permanente desde https://thx.zoethical.org hacia /index.html.
  2. Crear un enlace permanente desde https://thx.zoethical.org hacia /TransHack_·Xist·nce….
  3. Combinar ambos con un enlace permanente desde /index.html hacia /TransHack_·Xist·nce….
  4. Eliminar la redirección hacia /TransHack_·Xist·nce… en la configuración del frontend.
  5. Crear un enlace permanente de tipo custom_url y apuntarlo a una URL externa.

Supongo que el problema se debe a que el script no intenta recargar toda la aplicación al hacer clic en el logotipo, sino que espera que haya un enlace interno asociado a la ruta superior.

Me esperaría que, ya sea que homepage_url_override o un enlace permanente (por ejemplo, custom_url) apunte a una URL absoluta, la página se recargue completamente.

2 Me gusta