Hallo,
hat jemand eine Idee wie man ein Django Projekt in einem Unterverzeichnis eines Webservers installieren kann? Das Projekt enthält jede Menge Template-Dateien, die sich absolute auf das Webserver Rootverzeichnis beziehen (sprich: die links à la <a href="/foo.html">foo</a> enthalten). Ich möchte das Projekt gerne eine Verzeichnisebene tiefer rücken ohne viel zu ändern, und v.a. ohne sämtliche links anfassen zu müssen...
Lg,
lunas
Django Projekt im Unterverzeichnis
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Hä? Das managed dein Webserver ;)
Gib ihm einfach den Pfad.
Gib ihm einfach den Pfad.
Hmm... vielleicht habe ich mich etwas unverständlich ausgedrückt. Ich versuche es noch mal:
Es war einmal ein Django Projekt, das direkt im Rootverzeichnis des Webservers saß. Links in den Templates waren absolut und alles lief wie geschmiert.
Aus welchen Gründen auch immer wurde entschieden das Django Projekt nach /subdir/ zu verschieben. Links, die vorher nach /hello zeigten lieferten nun einen page not found error.
Die Preisfrage ist nun: Wie kann ich das Projekt ohne großen Aufwand wieder flott machen. Ich kann mir nicht vorstellen, dass jedes Django Projekt dafür geschrieben ist im Rootverzeichnis zu leben oder, dass das Unterverzeichnis immer Bestandteil eines jeden links sein muss...
Es war einmal ein Django Projekt, das direkt im Rootverzeichnis des Webservers saß. Links in den Templates waren absolut und alles lief wie geschmiert.
Aus welchen Gründen auch immer wurde entschieden das Django Projekt nach /subdir/ zu verschieben. Links, die vorher nach /hello zeigten lieferten nun einen page not found error.
Die Preisfrage ist nun: Wie kann ich das Projekt ohne großen Aufwand wieder flott machen. Ich kann mir nicht vorstellen, dass jedes Django Projekt dafür geschrieben ist im Rootverzeichnis zu leben oder, dass das Unterverzeichnis immer Bestandteil eines jeden links sein muss...
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Du musst einfach deinem Webserver sagen, dass er nicht mehr nach /altes_dir/ sondern nach /altes_dir/subdir/ weiterleiten soll...?
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Dann erzähl doch mal, was für nen Webserver du verwendest und welche Art, pythonzeugs laufen zu lassen.
Ich kann nur apollo13 beipflichten: Konsequent das `url`-Tag benutzen und dann reicht es, die `urls.py`-Datei anzupassen. Einen anderen Weg sehe ich nicht.
Man könnte zwar mittels middleware das erzeugte HTML parsen, links erkennen und diese dann umschreiben, doch das erscheint mir noch aufwendiger und ist ein übler Hack.
Stefan
Man könnte zwar mittels middleware das erzeugte HTML parsen, links erkennen und diese dann umschreiben, doch das erscheint mir noch aufwendiger und ist ein übler Hack.
Stefan
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Ist es nicht so, dass er seine urls, z.B. /foo/bar/2/ in urls.py angibt und seinen Apache z.B. /myblog/ via mod_python oder wsgi weiterleiten lässt? Dann ist es doch egal, ob das Projekt unter /foo/bar/2/ erreichbar sein soll oder /myblog/foo/bar/2/... oder? Das muss er einfach nur dem Apache sagen O__o
Ich hatte das so verstanden, dass im HTML etwas wie <a href="/foo"> steht, er aber ein <a href="/bar/foo"> haben will, weil er jetzt alles unter "/bar" erreichen will und nicht mehr unter "/". Und er wollte in Templates nicht alles durchändern, was aber IMHO unvermeidlich ist, wenn man nicht hacken will.
Stefan
Stefan