Entschuldigung, falls ich das falsch eingeschätzt habe, aber ich habe kürzlich nach einem Upgrade in einer Subfolder-Konfiguration, die zuvor problemlos funktioniert hat, einige Probleme festgestellt. Daher vermute ich, dass es in jüngster Zeit auf einigen Ebenen zu Regressionen gekommen sein könnte? Insbesondere hoste ich Discourse selbst in der hier beschriebenen Subfolder-Konfiguration hier, die bis vor kurzem (soweit ich weiß) einwandfrei lief.
Derzeit werde ich beim Einloggen über SSO oder beim Wechseln in den/aus dem anonymen Modus (und vielleicht auch in anderen, mir noch unbekannten Situationen) zu https://my_machine/discourse_path_stuff weitergeleitet, anstatt zu https://my_machine/forum/discourse_path_stuff. Außerdem wird meine Adressleiste, wenn ich zu https://my_machine/forum (dem richtigen Endpunkt) navigiere, so umgeschrieben, dass dort https://my_machine steht (der Subfolder wird entfernt), obwohl die meisten Links anscheinend an die richtigen Stellen führen.
Leider kann ich mich nicht mehr daran erinnern, an welchem Commit ich gearbeitet habe, als alles noch funktionierte, aber ich bin mir ziemlich sicher, dass es sich um einen unter dem “2.4.0.beta10”-Label fallenden Commit handelte, wahrscheinlich innerhalb der letzten ~10 Tage. Aktuell laufe ich auf bd49d4af1a.
Ich entschuldige mich, falls ich nur etwas Dummes mache, und bin gerne bereit, bei der Fehlersuche zu helfen, falls Sie Vorschläge haben, wo ich suchen sollte.
Wir verwenden das Discourse-SSO-Protokoll, das bisher problemlos funktioniert hat. Der Handshake scheint weiterhin korrekt abzulaufen, es wird nur am Ende an die falsche Stelle umgeleitet. Der Schlüssel "return_sso_url" im SSO-Payload wird jedoch korrekt an unseren SSO-Endpunkt zurückgesendet (mit /forum).
Ich habe auch einen Rebuild versucht, aber das hat das Problem nicht behoben.
Leider könnte die Fehlersuche schwierig sein, da ich Außenstehenden keinen Zugriff gewähren möchte, da diese Instanz für einen Kurs genutzt wird und ich keine Bedenken habe, Studentendaten mit externen Parteien zu teilen (auch wenn ich dir persönlich vertraue!). Wenn es jedoch hilft, bin ich gerne bereit, dieses Setup auf einem anderen Server zu replizieren, auf den ich dir Zugang gewähren könnte…
Ich sehe auch, dass der Link zum Betreten/Verlassen des anonymen Modus window.location.reload() verwendet, um die Seite neu zu laden, nachdem eine Anfrage an einen Endpunkt gesendet wurde, um in den anonymen Modus zu wechseln. Dieser Neuladevorgang würde definitiv die umgeschriebene URL sehen (die nicht mehr /forum enthält), was dies verursachen würde (ich bin mir nicht sicher, ob es bei den SSO-Problemen ähnlich ist).
Ich werde mir die letzten Changesets ansehen, um zu prüfen, ob das, was (wie ich denke?) window.location umschreibt, eine kürzliche Ergänzung ist.
Außerdem liefert Discourse.getURL('/login') immer noch das richtige Ergebnis (mit /forum).
Die Pfade werden ohne Subordner-Präfix in der Adressleiste des Browsers zurückgesetzt.
Beispiel:
Ich besuche example.com/forum → nach dem Laden des Forums zeigt die Adressleiste example.com.
Dann klicke ich auf „Neueste“ → es wird zu „Neueste“ navigiert und die Adressleiste zeigt example.com/forum/latest.
Ich aktualisiere die Seite im Browser, die Website wird neu geladen und die Adressleiste zeigt example.com/latest.
Wenn ich erneut aktualisiere, während ich mich auf example.com/latest befinde, tritt ein 404-Fehler auf (da mein Nginx nur /forum an Discourse weiterleitet).
Die Link-Vorschau unten links im Browser wird als example.com/latest, example.com/new usw. angezeigt. Das Aktualisieren eines Themas entfernt ebenfalls /forum aus der URL, aber anschließend ändert es sich wieder zurück zu /forum/t/[…].
Ich war zuvor in der Version 2.4.0.beta2 und erinnere mich nicht an dieses Problem.
Super, danke! Schön zu wissen, dass ich nicht verrückt bin.
Beim Stöbern in den jüngsten Commits konnte ich jedoch keinen offensichtlichen Punkt finden, an dem diese Umstrukturierung stattfindet. Wäre es möglich, einen Hinweis darauf zu bekommen, wo im Code dies geschieht/geschah? (Ich bin gerade dabei, mich mit der Codebasis vertraut zu machen).
Fast sicher diese Änderung, die für dieses Problem gemacht wurde. Ich bin mir nicht ganz sicher, was das Problem genau ist, aber ich werde mich darum kümmern