SSI statt Frames verwendet - nun Probleme
steve01
- programmiertechnik
Hallo zusammen,
bei meinem neuen Projekt wollte ich auf Frames verzichten und haben in jeweils externen Files die "Menüs oben" und die "Menüs unten" definiert. Diese Files binde ich über SSI ein. Der Files sind im Unterordnder ext.
<!--#include virtual="../ext/oben.htm"-->
<!--#include virtual="../ext/unten.htm"-->
Folgendes Probleme: Wenn ich nun in irgendeinem Unterordner in einer Datei *.shtml diese Files einbinde, dann stimmen alle relative Pfadangaben für Bilder und Links nicht mehr. Welche Abhilfe gibt es?
1.) Alle *.shtml Dateien in den leihen Ordner legen
oder
2.) oben.htm/unten.htm umdefinieren anch nach oben.php/unten.php machen und dann den Pfad der akuellen Datei über PHP auslesen und dann die Variablen für die Pfade in oben.php/unten.php füllen
Was gibt es denn noch ?
2.) ist eleganter, aber ich bin leider kein PHP Profi
THX
Steve01
hi,
2.) oben.htm/unten.htm umdefinieren anch nach oben.php/unten.php machen und dann den Pfad der akuellen Datei über PHP auslesen und dann die Variablen für die Pfade in oben.php/unten.php füllen
wenn du eh schon PHP zur verfügung hast - warum willst du dann noch SSI einsetzen?
gruss,
wahsaga
wenn du eh schon PHP zur verfügung hast - warum willst du dann noch SSI einsetzen?
hi wahsaga,
weil dann die seiten doch schneller geladen werden oder nicht ?
das parsen dauert doch...
bye,
steve01
der flaschenhals ist wie immer hier die verbindung vom server zum client.
hi,
weil dann die seiten doch schneller geladen werden oder nicht ?
das parsen dauert doch...
wieso glaubst du, dass SSI-befehle _nicht_ geparst werden müssten?
gruss,
wahsaga
wieso glaubst du, dass SSI-befehle _nicht_ geparst werden müssten?
Ein Nachteil - ein Schönheitsfehler - ist noch die Endung PHP.
Der Auftraggeber fragt dann immer, was ist denn dass für eine Datei ?
Bye...
Steve01
Hallo Steve,
Ein Nachteil - ein Schönheitsfehler - ist noch die Endung PHP.
Die ist nicht wirklich nötig:
AddType application/x-httpd-php .html .php
Der Nachteil dabei ist, dass nun jede HTML-Datei durch den PHP-Parser geschickt wird, was natürlich nicht sein muss.
Noch eleganter ist es natürlich mit
Options +Multiviews
Der Auftraggeber fragt dann immer, was ist denn dass für eine Datei ?
Und? Was ist so schlimm daran ihm das zu erklären?
Schöne Grüße,
Johannes
P.S.: Vor ein Satzzeichen gehört kein Leerzeichen.
AddType application/x-httpd-php .html .php
Der Nachteil dabei ist, dass nun jede HTML-Datei durch den PHP-Parser geschickt wird, was natürlich nicht sein muss.
Hi Johannes,
ich bin leider kein Admin !
Der Auftraggeber fragt dann immer, was ist denn dass für eine Datei ?
Immer das Nachgefrage wenn der Link weiter gegeben wird ;-(
Bye...
Steve01
Hallo Steve,
ich bin leider kein Admin !
Das geht auch in einer .htaccess-Datei.
Nur wenn Multiviews nicht schon in der httpd.conf serverweit eingestellt ist, musst
AllowOverride Options
gesetzt sein, damit du es in der .htaccess einstellen kannst. Ansonsten halt einfach mal mit dem Admin reden...
Natürlich will ich dich jetzt nicht überreden PHP einzusetzen, wo es SSI genau so tut. Es geht nur um die allgemeinen Möglichkeiten.
Schöne Grüße,
Johannes
Hi
Folgendes Probleme: Wenn ich nun in irgendeinem Unterordner in einer Datei *.shtml diese Files einbinde, dann stimmen alle relative Pfadangaben für Bilder und Links nicht mehr. Welche Abhilfe gibt es?
Du könntest die Ordnerstruktur so anpassen, dass die Pfade immer korrekt sind, oder die Pfade mit '/' beginnen, wobei nur noch der Servername relativ ist.
FG
Tom2
hi tom2,
ch schreibe jetzt immer den ganzen Link wie z.B.
http://localhost/projekt/link1.hmt
http://localhost/projekt/link2.hmt
in die externen Files.
Oder meinst du was anderes?
Hi
http://localhost/projekt/link1.hmt
Sobald du das auf den Server lädtst wird es warscheinlich nicht mehr funktionieren (Virtual Hosts). Versuch es doch mal mit "/projekt/link1.htm".
FG
Tom2
Moin.
Du könntest die Ordnerstruktur so anpassen, dass die Pfade immer korrekt sind, oder die Pfade mit '/' beginnen, wobei nur noch der Servername relativ ist.
Ergänzung zu Tom2's Tipp:
Teile dem Browser über <base href="http://www.blabla.de"> die BasisUrl mit. Dann kannst Du alle Links mit / beginnen lassen.
Gruß Frank