Eigener HTTP-Server mit BaseHTTPServer

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Dienstag 17. August 2010, 17:40

Hallo Pythonforum,

ich habe hier gerade zum Spass den minimal Httpserver in python auf meinem Uraltlinuxpc aufgesetzt.

Code: Alles auswählen

from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
serveradresse = ("192.168.28.3", 8080)
server = HTTPServer(serveradresse, CGIHTTPRequestHandler)
print "Server gestartet"
server.serve_forever()
Dann habe ich ein index.html erstellt mit einem Link auf einen Bilderordner

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<BODY LANG="de-DE" DIR="LTR">
<P>Willkommen zu meiner Seite</P>
<P><A HREF="/bilder">zu bilder</A></P>
</BODY>
</HTML>
Soweit so gut. Klicke ich nun auf den Link wechselt mein Browser in das Bilderverzeichnis.
Klicke ich aber nun ein Bild an, kann es nicht geladen werden weil er noch im Rootpfad sucht.
Wie kann ich ihm das abgewöhnen?
Danke für eure Hilfe.

Gruß
alpha
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Dienstag 17. August 2010, 19:28

alpha hat geschrieben:Klicke ich aber nun ein Bild an, kann es nicht geladen werden weil er noch im Rootpfad sucht.
Dieses Verhalten kann ich nicht reproduzieren. Alle Ordner und Verzeichnisse werden korrekt aufgelöst.
https://www.xing.com/go/invite/18513630.6a91d4
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Dienstag 17. August 2010, 21:06

Hallo lutz.horn,

hast du ein mal ein neues Verzeichnis angelegt?
Wenn ich mit der Maus darüber fahre wird schon der falsche Pfad angezeigt.
Also nur http://meinrechner/bildname.jpg und nicht
http://meinrechner/bilder/bildname.jpg

Gruß
alpha
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Mittwoch 18. August 2010, 07:44

Bei mir funktioniert sowohl lokal als auch online (http://www.dev-random.de:9090/) alles korrekt.
https://www.xing.com/go/invite/18513630.6a91d4
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Mittwoch 18. August 2010, 09:19

Hallo Lutz,

ich verwende Python 2.6.4.
Du kannst das Verhalten auf
http://duro.blogsite.org:8080

nachvollziehen.
Nun gilt es nur noch herauszufinden was bei Dir besser ist als bei mir :)
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Mittwoch 18. August 2010, 09:37

"/bilder" + "p2190001.jpg" = "/p2190001.jpg"
"/bilder/" + "p2190001.jpg" = "/bilder/p2190001.jpg"

PS: Das Pfade mit und ohne abschließendem Slash von manchen Bibliotheken und Servern gleich behandelt werden, ist ein Unding. Hier kann man sehr schön sehen, warum man so etwas nicht machen sollte.
Zuletzt geändert von Defnull am Mittwoch 18. August 2010, 09:41, insgesamt 2-mal geändert.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Mittwoch 18. August 2010, 09:38

Der Unterschied besteht in dem fehlenden "/" als letztes Zeichen des Pfades:

* http://duro.blogsite.org:8080/bilder
* http://duro.blogsite.org:8080/bilder/

Im zweiten Fall funktioniert es. Warum allerdings im Deinem Fall das "/" nicht angehängt wird, ist mir unklar.
https://www.xing.com/go/invite/18513630.6a91d4
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Mittwoch 18. August 2010, 10:12

Faszinierend.. Du hast recht.. Wenn ich lokal auf den Server zugreife funktioniert es.
Es könnte auch am Browser liegen.

Danke für Deine Hilfe

alpha
Antworten