Bilder lokal (WindowsXP) außerhalb von DocumentRoot nicht an

Alles, was den Apache betrifft, kann hier besprochen werden.

Bilder lokal (WindowsXP) außerhalb von DocumentRoot nicht an

Postby Heinzelmännchen » 14. January 2007 14:54

Hallo Leute,

ich habe mir auf meinem Notebook jetzt mal Apache 2.0.5.9 installiert und eingerichtet. Funktioniert alles soweit ganz gut.

Nur wenn ich Bilder aus dem lokalem System in die Seite mit einbinde, die unter der lokalem Domain eines vhosts aufgerufen wird kann dieses nicht angezeigt werden. :(
Sozusagen, der Fremdaufruf funktioniert nicht. Dies musste doch aber bis jetzt noch nie seperat eingestellt werden.

Kopiere ich den Quelltext und erstelle daraus eine Datei und rufe diese mit dem Browser auf, so wird das Bild angezeigt. Das Bild kann auch über die Adressleiste angezeigt werden.

Wenn ich Bilder, die in dem angegebenen DocumentRoot liegen, anzeigen lasse, funktioniert dies auch soweit.

Habe schon in der httpd.conf nachgeschaut, aber noch nix passendes gefunden.

VG
Heinz
Heinzelmännchen
 
Posts: 9
Joined: 01. March 2004 14:14

Postby deepsurfer » 14. January 2007 16:25

Hierzu wäre ein Codebeispiel sehr hilfreif, sofern ich das aus deiner Beschreibung jetzt entziffere so hast du eine webpage (z.b. page1.html).

Diese page1.html liegt im DocumentRoot deines Apachen und ist mit http://localhost/page1.html aufrufbar.

Jetzt versuchst du mittels einem Codeschnippsel ein Bild das irgendwo auf der Festplatte liegt (also nicht im/unterhalb des DocumentRoot) in diese page1.html ein zu binden.

Ein gegentest im Browser mit file://c:/irgendwo/bildname.jpg funktioniert aber halt nicht im HTMLcode..

trifft das so zu ?
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Heinzelmännchen » 14. January 2007 23:25

deepsurfer wrote:Hierzu wäre ein Codebeispiel sehr hilfreif, sofern ich das aus deiner Beschreibung jetzt entziffere so hast du eine webpage (z.b. page1.html).

Diese page1.html liegt im DocumentRoot deines Apachen und ist mit http://localhost/page1.html aufrufbar.

Jetzt versuchst du mittels einem Codeschnippsel ein Bild das irgendwo auf der Festplatte liegt (also nicht im/unterhalb des DocumentRoot) in diese page1.html ein zu binden.

Soweit ist es korrekt...

deepsurfer wrote:Ein gegentest im Browser mit file://c:/irgendwo/bildname.jpg funktioniert aber halt nicht im HTMLcode..

trifft das so zu ?

Hier weiss ich nicht ob ich Dich richtig verstanden habe. Im Browser (IE und Mozilla) kann ich die Fremddatei file://c:/irgendwo/bildname.jpg aufrufen.
Heinzelmännchen
 
Posts: 9
Joined: 01. March 2004 14:14

Postby deepsurfer » 14. January 2007 23:45

Hier weiss ich nicht ob ich Dich richtig verstanden habe. Im Browser (IE und Mozilla) kann ich die Fremddatei file://c:/irgendwo/bildname.jpg aufrufen.


Schon richtig verstanden.

Wie schaut dein Code dazu aus ??
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Heinzelmännchen » 15. January 2007 19:33

deepsurfer wrote:Schon richtig verstanden.

Wie schaut dein Code dazu aus ??

Hi,

ich habe mal ein Screenshot hinterlegt:

http://show.freehost.ag/screenshot.jpg

Mein Code für die Seite schaut wie folgt aus:
Code: Select all
<html>
<head>
   <title>Test</title>
</head>
<body bgcolor="white">
Test 1: Absolute<br>
<img border="1" src="file:///c:/Programme/Apache%20Group/Apache2/htdocs/test1.jpg"><br>
<br>
Test 2: relative<br>
<img border="1" src="test1.jpg"><br>
</body>
</html>


Das DocumentRoot ist: C:/Programme/Apache Group/Apache2/htdocs
Heinzelmännchen
 
Posts: 9
Joined: 01. March 2004 14:14

Postby deepsurfer » 16. January 2007 00:26

Klassischer Einsteiger Fehler...

Damit ein Bild über den http Request auch angezeigt wird solltest du relative Pfade benutzen oder Absolute über einen http aufruf.

Dein Script geht davon aus das das Bild beim user an dieser stelle vorhanden sein soll.
Wenn du diese Pfadangabe in deinem Browser selber einfügst so springt der browser über in deinen Datenmodus und greift dait auf die Festplatte zu.

Hier das solltest du lesen..
http://de.selfhtml.org/html/grafiken/einbinden.htm

Da es leicht übersehen wird....(überlesen wird),
dieser LINK zur weiteren Erklärung wie der Webserver mt Pfaden arbeitet
http://de.selfhtml.org/html/allgemein/referenzieren.htm
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Heinzelmännchen » 16. January 2007 10:37

deepsurfer wrote:Klassischer Einsteiger Fehler...

Damit ein Bild über den http Request auch angezeigt wird solltest du relative Pfade benutzen oder Absolute über einen http aufruf.

Dein Script geht davon aus das das Bild beim user an dieser stelle vorhanden sein soll.

Das soll nicht nur davon ausgehen, denn dies ist auch so. Bei dem Beispiel handelt es sich um die gleiche Datei. Nur das ich oben die vollständigen URI übergebe, welche zwar keine nach Definition ist.

Auf meinem Festrechner funktioniert das ursprüngliche Script auch so. Dabei gibt es diese Probleme nicht.
Warum sollte es auch? Die Datei ist da vorhanden. Nur halt außerhalb der Domain localhost.

Das Problem trifft nur bei meinem Notebook mit neusten Version bis jetzt auf.
Heinzelmännchen
 
Posts: 9
Joined: 01. March 2004 14:14

Update

Postby Heinzelmännchen » 03. February 2007 21:09

Hi Leute,

das Problem ist zumindest schon analysiert, nur noch nicht unter so "wirklich" abgestellt bekommen.

Es hat auf jedenfall was mit dem IE 7 zutun. Dieser Verursacht dieses Phänomen auf meinem Notebook.
Nachdem ich diesen deinstalliert hatte, war das Problem mit dem IE 6 nicht mehr vorhanden.

Doch ich würde es gerne auch mit dem IE 7 hinbekommen. Daher müsste es ja über irgend welche Einstellungen beim IE 7 oder im OS selber gehandelt werden können. Hat jemand diesbezüglich schon einmal irgendwas gelesen oder gehört?

Gruß
Heinz
Heinzelmännchen
 
Posts: 9
Joined: 01. March 2004 14:14

Postby Wiedmann » 03. February 2007 21:49

Hat jemand diesbezüglich schon einmal irgendwas gelesen oder gehört?

Ja, dass was du machst, macht man nicht!
a) In HTML-Seiten die für einen Webserver vorgesehen sind, benutzt man nur das Schema "http://" aber nicht "file://" für Referenzen. Oder man gibt halt keines an und der Browser nimmt dann automatisch das passende: öffnen der HTML-Datei über einen Webserver ("http://) oder öffnen über das Dateisystem ("file://").

b) Ein Webserver kennt nur die Verzeichnisstruktur ab DocumentRoot. Willst du Dateien/Verzeichnise ausserhalb diesem benutzen, musst du diese dem Server per Alias-Directive bekannt machen.

Du kannst das jetzt so annehmen, akzeptieren und dich danach richten, oder...
(auch wenn das irgendwo, irgdwann, warum auch immer, mal funktioniert haben mag)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to Apache

Who is online

Users browsing this forum: No registered users and 3 guests