Moin!
Beispiel, wo relative Pfadangaben nicht funktionieren:
Ich schicke Dir einen URL für eine Restschnittstelle
https://example.org/rest/svenwomit Du die Preislisten in /herren/badehosen auf dem Laufenden halten kannst.
Du spielst zuviel Buzzword-Bingo. REST-Schnittstelle... soso.
Am Server kommt als RU an: /rest/sven und wird per Rewrite auf ein Script geleitet. Das Verzeichnis /rest/sven gibt es nur virtuell, also nicht etwa im FS. Das Script jedoch wertet den RU aus, guckt in die DB und weiß, dass es dazu ein Formular erzeugen muss, für den Upload der Preislisten. Tja, jetzt die Frage nach der action-Note ;) Relativ, wenn ja, relativ zu??
Punkt 1: Eine REST-Schnittstelle implementiert in der Regel die HTTP-Methoden GET, PUT, DELETE und ggf. POST. Wenn ich also über die gegebene URL REST-Operationen machen würde, würde ich erwarten, dass ich direkt ein PUT mit dem Dateiupdate vornehmen kann.
Deshalb kommen wir zu Punkt 2: Wozu brauch ich ein Formular? GET auf die URL der REST-Schnittstelle liefert mir Content - üblicherweise den, den man mit den anderen Operationen schreibend bearbeiten kann.
Bei einem GET auf die URL würde ich also keinesfalls ein Uploadformular erwarten.
Aber selbst wenn... Punkt 3: Die relative URL in der Formular-Action basiert immer auf der zum Laden des Formulars genutzten URL. Rewriting ist irrelevant. Genauso wie dein Verweis auf "/herren/badehosen" - spielt bei der Betrachtung keinerlei Rolle, ist absolut nebensächlich.
Wenn die URL also "/rest/sven" ist, wird eine Action "mail" zur Formular-URL "/rest/mail" führen.
PS: Es immer wieder bemerkenswert, wie Bastler sich des Themas ereifern. Das ist so wie bei den Amateurfotografen, die von schlechten Gläsern reden, weil sie Aufnahmen mit 1/1000s nicht wackelfrei hinbekommen.
Die hohe Kunst der SELF-Beleidigung. Hast du prima hingekriegt, fühlst dich aber vermutlich nicht selbst angesprochen.
- Sven Rautenberg