Resumen del problema
Estoy recibiendo un error 404 al acceder a una carga de imagen a través de su URL en el sitio público de Discourse (https://techenclave.com), a pesar de que la imagen está presente en el disco y se sirve correctamente internamente. He vuelto a hornear la publicación, reiniciado la aplicación y verificado que el servicio interno funciona, pero sigue dando 404 externamente.
Lo que funciona
1. La carga existe en la base de datos
Usando la consola de Rails, confirmé que la carga existe con todos los metadatos correctos:
Upload.find_by(sha1: 'a8fbe877e685e6a6994532c946c446b1279da7d2')
La salida incluye:
url: "/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg"- Nombre de archivo:
IMG202506252257011.jpg - ID:
170265 - Usado en ID de publicación:
3125774
2. El archivo existe en el disco
Verificado que el archivo está presente dentro del contenedor:
ls -l /shared/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
El archivo existe con la propiedad y los permisos correctos:
discourse:www-data, -rw-r--r--.
3. El enlace simbólico desde la carpeta pública funciona
El enlace simbólico public/uploads está intacto:
ls -l /var/www/discourse/public/uploads
# => /shared/uploads
4. Discourse puede servirlo internamente
Probado con:
curl -I http://localhost:3000/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Resultado: HTTP/1.1 200 OK
5. Publicación rebakeada
Rebakeé la publicación con:
Post.find(3125774).rebake!
6. Aplicación reiniciada
Ejecuté:
./launcher restart app
También intenté:
sudo ./launcher rebuild app
(El demonio de Docker no estuvo disponible temporalmente pero se arregló más tarde).
Lo que no funciona
Acceso externo a la imagen
Accediendo a:
https://techenclave.com/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Devuelve:
404 Not Found
Esto sucede en todos los navegadores y en modo incógnito.
Con qué necesito ayuda
¿Alguien puede ayudar a identificar qué podría causar:
- Una carga que funciona y se sirve a través de
localhost:3000, - pero devuelve 404 externamente en el dominio público?
¿Qué más debería revisar? ¿Alguna configuración o registro relacionado para inspeccionar?
¡Gracias de antemano!
