Problemübersicht
Ich erhalte einen 404-Fehler, wenn ich über die URL auf einen Bild-Upload auf der Live-Discourse-Seite (https://techenclave.com) zugreife, obwohl das Bild auf der Festplatte vorhanden ist und intern korrekt ausgeliefert wird. Ich habe den Beitrag neu gebacken, die Anwendung neu gestartet und überprüft, ob die interne Auslieferung funktioniert, aber extern wird immer noch ein 404 angezeigt.
Was funktioniert
1. Upload existiert in der DB
Über die Rails-Konsole habe ich bestätigt, dass der Upload mit allen korrekten Metadaten vorhanden ist:
Upload.find_by(sha1: 'a8fbe877e685e6a6994532c946c446b1279da7d2')
Ausgabe beinhaltet:
url: \"/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg\"- Dateiname:
IMG202506252257011.jpg - ID:
170265 - Verwendet in Beitrag-ID:
3125774
2. Datei existiert auf der Festplatte
Überprüft, ob die Datei im Container vorhanden ist:
ls -l /shared/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Datei existiert mit korrektem Eigentümer und Berechtigungen:
discourse:www-data, -rw-r--r--.
3. Symlink vom öffentlichen Ordner funktioniert
Der Symlink public/uploads ist intakt:
ls -l /var/www/discourse/public/uploads
# => /shared/uploads
4. Discourse kann es intern ausliefern
Getestet mit:
curl -I http://localhost:3000/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Ergebnis: HTTP/1.1 200 OK
5. Beitrag neu gebacken
Den Beitrag neu gebacken mit:
Post.find(3125774).rebake!
6. Anwendung neu gestartet
Ausgeführt:
./launcher restart app
Auch versucht:
sudo ./launcher rebuild app
(Der Docker-Daemon war vorübergehend nicht verfügbar, wurde aber später behoben.)
Was nicht funktioniert
Externer Zugriff auf das Bild
Zugriff auf:
https://techenclave.com/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Gibt zurück:
404 Not Found
Dies geschieht in allen Browsern und im Inkognito-Modus.
Womit ich Hilfe brauche
Kann jemand helfen zu identifizieren, was Folgendes verursachen könnte:
- Ein funktionierender Upload, der über
localhost:3000ausgeliefert wird, - aber extern unter der öffentlichen Domain einen 404 zurückgibt?
Was sollte ich noch überprüfen? Gibt es zugehörige Konfigurationen oder Protokolle, die ich untersuchen sollte?
Vielen Dank im Voraus!
