Michael Schröpl: Angabe eines relativen Pfads in einem perl script

Beitrag lesen

Hi,

a) warum während der Ausführung eines perl-scrips
im meinem aktuellen Pfadnamen der Wert
"/cgi-bin/cssProblem.css" steht?

Ich bezweifele diese Aussage.

Denn das, was Du da ausgibst, ist eine JavaScript-
Meldung. Zu diesem Zeitpunkt kann von "während der
Ausführung eines Perl-Skripts" schon längst keine
Rede mehr sein - das ist bereits fertig und hat seine
Ausgabe an den Browser geschickt.

b) hat jemand eine Lösung, wie ich dafür sorgen
kann, dass ich innerhalb eines perl-scripts für
die css-datei einen relativen Pfad angeben kann?

Vergiß mal den Teil "innerhalb eines Perl-Skripts"
und löse Dein Problem für eine statische HTML-Datei.
Bei einem Perl-Skript mußt Du dann lediglich genau
das ausgeben, was auch in der statischen Datei drin
stehen würde.

Gebe ich eine absoluten Pfad an, funktioniert es
(siehe unten)

Das kommt darauf an, _welchen_ statischen Pfad Du
angibst, ob dort tatsächlich eine CSS-Datei mit
diesem Namen existiert usw.

Mit welchem Browser testest Du denn eigentlich?
Nimm mal Netscape 4 - wenn nämlich Dein CSS-Pfad im
ausgegebenen HTML-Code verkehrt ist, bekommst Du dort
eine unübersehbare Fehlermeldung, während der M$IE
solche Patzer hinter die Heizung fallen läßt.

<!-- dies war mein Versuch mit SSI, leider scheint
SSI auf meinem Rechner nicht zu funktionieren:

Was passiert denn an dieser Stelle?

Steht dieser Text auch noch im Quelltext des Dokuments,
welches im Browser angezeigt wird? Dann ist das Doku-
ment in der Tat nicht vom SSI-Handler geparsed worden.

Wie hast Du SSI denn konfiguriert? (Für welche
Verzeichnisse, für welche Endungen usw.)

<!-- #exec cgi="/cgi-bin/cssProblem.pl" -->

"include virtual" wäre sinnvoller.

+++++ die folgende Zeile funktioniert nicht, da im Pfad "/cgi-bin/readFile.pl" steht ++++++

print '<link rel="stylesheet" type="text/css" href="form.css">', "\n";

Damit wirst Du nie glücklich werden.

Stell Dir mal vor, Deine CSS-Datei würde tatsächlich
dort liegen, wo Du sie mit dieser Anweisung erwartest.
Das wäre dann "/cgi-bin/form.css".

Jetzt überlege Dir mal, was passiert, wenn der Browser
dieses Dokument vom Apache anfordert.
1. Der Apache sieht sich den Pfad an,
2. Er merkt, daß dies eine Datei ist, welche innerhalb
   von /cgi-bin/ liegt.
3. Er versucht, sie _auszuführen_!
Nicht etwa, ihren Inhalt an den Browser zu senden.
So funktioniert das also nicht.

Lies Dich mal in
http://aktuell.de.selfhtml.org/artikel/cgiperl/inbetriebnahme/#a6
ein.

+++++ mit der folgenden Zeile würde es funktionieren

print '<link rel="stylesheet" type="text/css" href="http://localhost/form.css">', "\n";

Das liegt auch nicht innerhalb von /cgi-bin.

Viele Grüße
<img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael