Absolute Dateipfade
Regina Schlauklug
- css
- html
- links
0 woodfighter0 Der Martin0 Martl-1 pl0 Matthias Apsel-1 pl
Moinsen,
angenommen einen html-Seite wird bei A gehostet. Die verlinkten Dateien (Bilder etc.) beim Provider B. Problem: Der Host B ist in Bangladesh und die URL zum Bilderordner ungefähr zwei Meter lang. Ausserdem könnte es sein, das man das alles mal umziehen muss zu einem Host C.
Wäre es da nicht sinnvoll, man könnte die URL zu allen externen Dateien zentral in der .html oder .css definieren, sodaß an sie beim Umzug nur an einer Stelle ändern muss, nicht alle 253 Links in der .html.
Hat einer ne Idee oder Lösung. Das Internet hat nix diesbezüglich rausgeworfen ...
Tach,
Wäre es da nicht sinnvoll, man könnte die URL zu allen externen Dateien zentral in der .html oder .css definieren, sodaß an sie beim Umzug nur an einer Stelle ändern muss, nicht alle 253 Links in der .html.
für HTML gibt es im Prinzip das base-Element, aber eine gute Idee ist dessen Verwendung i.A. nicht (ein Äquivalent für CSS gibt es nicht, in Javascript kann man das über eine Variable lösen); ich würde im Prinzip immer auf eine serverseitige Technik setzen.
mfg
Woodfighter
@@woodfighter
für HTML gibt es im Prinzip das base-Element, aber eine gute Idee ist dessen Verwendung i.A. nicht
Zumal das global wirkt, also u.U. auch auf Links, wo man das nicht möchte,
ich würde im Prinzip immer auf eine serverseitige Technik setzen.
Also alle Bilder so referenzieren, als wären sie in der eigenen Domain (z.B. http:example.net/images/kitten.jpg
) und für http:example.net/images/
eine Weiterleitung auf das tatsächliche Verzeichnis beim anderen Hoster?
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
Tach,
ich würde im Prinzip immer auf eine serverseitige Technik setzen.
Also alle Bilder so referenzieren, als wären sie in der eigenen Domain (z.B.
http:example.net/images/kitten.jpg
) und fürhttp:example.net/images/
eine Weiterleitung auf das tatsächliche Verzeichnis beim anderen Hoster?
nein, Basis-URI als Variable und an passender Stelle ausgeben. Weiterleitungen erzeugen nur unnötigen Overhead.
mfg
Woodfighter
@@woodfighter
ich würde im Prinzip immer auf eine serverseitige Technik setzen.
Also alle Bilder so referenzieren, als wären sie in der eigenen Domain (z.B.
http:example.net/images/kitten.jpg
) und fürhttp:example.net/images/
eine Weiterleitung auf das tatsächliche Verzeichnis beim anderen Hoster?nein, Basis-URI als Variable und an passender Stelle ausgeben. Weiterleitungen erzeugen nur unnötigen Overhead.
Wenn man bereits eine serverseitige Technik wie SSI oder PHP einsetzt, ja.
Wenn nicht, erzeugt die Einführung einer solchen nur für diesen Zweck auch Overhead.
Was wäre in dem Fall weniger Overhead?
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
Tach,
Wenn man bereits eine serverseitige Technik wie SSI oder PHP einsetzt, ja.
Wenn nicht, erzeugt die Einführung einer solchen nur für diesen Zweck auch Overhead.
Was wäre in dem Fall weniger Overhead?
es entsteht unterschiedlicher Overhead; einmal beschäftige ich den Prozessor des Webservers mehr und im anderen Falle tue ich das (allerdings vermutlich weniger) und erzeuge mehr Traffic (und/oder ein Cache Problem je nach Weiterleitung). Ich würde erwarten, dass Traffic ein engerer Flaschenhals ist und selbst wenn nicht, ist die zusätzliche Roundtripzeit für den zusätzlichen Request vermutlich länger als die Wartezeit auf das Parsing des Dokuments (das auch noch gecacht werden kann).
mfg
Woodfighter
Moin,
angenommen einen html-Seite wird bei A gehostet. Die verlinkten Dateien (Bilder etc.) beim Provider B.
dann würde ich mich als allererstes fragen: Warum?? Warum schiebt man nicht die Bilder auch auf den Server von Hoster A rüber und hat dann alles beieinander?
Problem: Der Host B ist in Bangladesh und die URL zum Bilderordner ungefähr zwei Meter lang.
Und Hoster B ist vielleicht nicht so zuverlässig, wie man es von europäischen Anbietern gewöhnt ist, und fällt öfters mal für kurze Zeit aus.
Wäre es da nicht sinnvoll, man könnte die URL zu allen externen Dateien zentral in der .html oder .css definieren, sodaß an sie beim Umzug nur an einer Stelle ändern muss, nicht alle 253 Links in der .html.
Unter der Prämisse, dass man die Daten wirklich auf unterschiedlichen Servern hat ... ja. Aber genau diese Voraussetzung ist IMO der Punkt, an dem man ansetzen sollte.
Hat einer ne Idee oder Lösung. Das Internet hat nix diesbezüglich rausgeworfen ...
Eventuell könnte dir das base-Element helfen. Allerdings nicht für Hintergrundbilder, die via CSS eingebunden werden.
Alternativ eine serverseitige Sprache (z.B. PHP), die im ausgelieferten Code bestimmte Pseudocodes durch den tatsächlichen Hostnamen ersetzt.
So long,
Martin
Moin,
angenommen einen html-Seite wird bei A gehostet. Die verlinkten Dateien (Bilder etc.) beim Provider B.
dann würde ich mich als allererstes fragen: Warum?? Warum schiebt man nicht die Bilder auch auf den Server von Hoster A rüber und hat dann alles beieinander?
Zum Bleistift weils ned geht! Ich arbeite z.B. viel mit baseportal. Dort kann ich zwar Textdateien ablegen, aber keine Bilder etc.
Problem: Der Host B ist in Bangladesh und die URL zum Bilderordner ungefähr zwei Meter lang.
Und Hoster B ist vielleicht nicht so zuverlässig, wie man es von europäischen Anbietern gewöhnt ist, und fällt öfters mal für kurze Zeit aus.
Das war ja nur ein plakatives Beispiel - nicht allzu ernst zu nehmen ...
Wäre es da nicht sinnvoll, man könnte die URL zu allen externen Dateien zentral in der .html oder .css definieren, sodaß an sie beim Umzug nur an einer Stelle ändern muss, nicht alle 253 Links in der .html.
Unter der Prämisse, dass man die Daten wirklich auf unterschiedlichen Servern hat ... ja. Aber genau diese Voraussetzung ist IMO der Punkt, an dem man ansetzen sollte.
... muss in meinem Fall leider so sein. Konkret: .html-Datei liegt bei baseportal auf und nutzt deren Datenbankfunktion, die ext. Dateien liegen beim Internet-Provider.
Hat einer ne Idee oder Lösung. Das Internet hat nix diesbezüglich rausgeworfen ...
Eventuell könnte dir das base-Element helfen. Allerdings nicht für Hintergrundbilder, die via CSS eingebunden werden.
Das ich da nicht selbst drauf gekommen bin - ist eigentlich ganz einfach!!! Ich war gerade drauf und dran in der .css mit content:'text' die URL in den Link zu schmuggeln. Aber so isses ja viel komfortabler.
Schankedönchen!
Hi,
angenommen einen html-Seite wird bei A gehostet. Die verlinkten Dateien (Bilder etc.) beim Provider B.
dann würde ich mich als allererstes fragen: Warum?? Warum schiebt man nicht die Bilder auch auf den Server von Hoster A rüber und hat dann alles beieinander?
Zum Bleistift weils ned geht! Ich arbeite z.B. viel mit baseportal. Dort kann ich zwar Textdateien ablegen, aber keine Bilder etc.
ich kannte baseportal bis eben noch nicht, aber bei solchen Fragen ist es hilfreich, wenn du solche Sonderfälle gleich im Eröffnungspost mit angibst. Denn sonst geht man von einem gewöhnlichen Webhoster aus - mit den unvermeidlichen Rückfragen.
Und Hoster B ist vielleicht nicht so zuverlässig, wie man es von europäischen Anbietern gewöhnt ist, und fällt öfters mal für kurze Zeit aus.
Das war ja nur ein plakatives Beispiel - nicht allzu ernst zu nehmen ...
Ist aber durchaus auch ein Aspekt: Kein Anbieter kann garantieren, dass der Service 100% verfügbar ist. Da passieren mal Pannen, da müssen mal Wartungsarbeiten durchgeführt werden. Verteilt man das Projekt nun auf zwei Services, hat man auch die doppelte Ausfallwahrscheinlichkeit.
Eventuell könnte dir das base-Element helfen. Allerdings nicht für Hintergrundbilder, die via CSS eingebunden werden.
Das ich da nicht selbst drauf gekommen bin - ist eigentlich ganz einfach!!!
Ja, mit den genannten Einschränkungen.
Ich war gerade drauf und dran in der .css mit content:'text' die URL in den Link zu schmuggeln.
Ich glaube nicht, dass das funktioniert hätte. Da wäre eher noch ein Ansatz mit Javascript denkbar: Ein Script fällt über document.links her und tauscht den Host-Anteil ggf. gegen einen anderen aus.
So long,
Martin
@@Der Martin
Da wäre eher noch ein Ansatz mit Javascript denkbar: Ein Script fällt über document.links her und tauscht den Host-Anteil ggf. gegen einen anderen aus.
Und bevor das Script das tut fragt der Client 404 nicht existierende Ressourcen an.
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
Hi,
Da wäre eher noch ein Ansatz mit Javascript denkbar: Ein Script fällt über document.links her und tauscht den Host-Anteil ggf. gegen einen anderen aus.
Und bevor das Script das tut fragt der Client 404 nicht existierende Ressourcen an.
verdammt, ich wusste doch, dass ich irgendeinen Haken übersehen hatte.
Man könnte natürlich mit document.write() rumtricksen, aber das möchte ich gar nicht weiter vertiefen. Von der per se unnötigen Anhängigkeit von Javascript ganz abgesehen.
So long,
Martin
Hallo Regina Schlauklug,
die URL zu allen externen Dateien zentral
was spricht gegen die Definition einer PHP-Variablen?
Grüße, Martl
(Wenn Plan A nicht funktioniert: Keine Panik, das Alphabet hat noch weitere 25 Buchstaben!)
Hallo,
(Wenn Plan A nicht funktioniert: Keine Panik, das Alphabet hat noch weitere 25 Buchstaben!)
das habe ich neulich auch an der Wand einer Fußgänger-Unterführung hier in der Innenstadt gelesen. Knapp daneben war ein weiterer, IMO wirklich tiefsinniger Spruch:
Don't fight for your country.
Fight for your planet.
So long,
Martin
Hallo Martin,
das soll eigentlich nur von Brecht ablenken und Hoffung machen. ;-}
"Ja, mach nur einen Plan, sei nur ein großes Licht und mach dann noch 'nen zweiten Plan, gehn tun sie beide nicht."
Bertolt Brecht, Dreigroschenoper
Grüße, Martl
(Wenn Plan A nicht funktioniert: Keine Panik, das Alphabet hat noch weitere 25 Buchstaben!)
Hat einer ne Idee oder Lösung. Das Internet hat nix diesbezüglich rausgeworfen ...
Absolut angeben aber ohne scheme://auth also nur path. Beispiel: src="/jquery.min.js". Bin schon paarmal umgezogen, kein Thema. Das ist dann auch kein Thema wenn scheme von http zu https wechseln sollte.
Hallo pl,
Hat einer ne Idee oder Lösung. Das Internet hat nix diesbezüglich rausgeworfen ...
Absolut angeben aber ohne scheme://auth also nur path. Beispiel: src="/jquery.min.js". Bin schon paarmal umgezogen, kein Thema. Das ist dann auch kein Thema wenn scheme von http zu https wechseln sollte.
Ich glaube, du hast nicht aufmerksam genug gelesen.
Bis demnächst
Matthias
Hallo pl,
Hat einer ne Idee oder Lösung. Das Internet hat nix diesbezüglich rausgeworfen ...
Absolut angeben aber ohne scheme://auth also nur path. Beispiel: src="/jquery.min.js". Bin schon paarmal umgezogen, kein Thema. Das ist dann auch kein Thema wenn scheme von http zu https wechseln sollte.
Ich glaube, du hast nicht aufmerksam genug gelesen.
Ahja aber Du!? Warum sehe ich dann keinen Lösungsvorschlag von Dir?
Hallo,
Ich glaube, du hast nicht aufmerksam genug gelesen.
Ahja aber Du!?
ja, ich vermute schon.
Warum sehe ich dann keinen Lösungsvorschlag von Dir?
Vielleicht weil schon drei sinnvolle Vorschläge geäußert wurden?
So long,
Martin
@@pl
Ich glaube, du hast nicht aufmerksam genug gelesen.
Ahja aber Du!? Warum sehe ich dann keinen Lösungsvorschlag von Dir?
Weil von woodfighter und Dem Martin schon welche kamen‽
Ich glaube, du hast nicht aufmerksam genug gelesen.
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
Ruhig Kinners, nich gleich hauen!!!
Das mit <base> war schon ned so schlecht - im Prinzip. Bloss werden jetzt meine Dateiinternen Anker (#) ja auch nach extern verlinkt, wo halt kein Ziel auf sie wartet. Mist!!!
Watt nu??????
Hallo,
Ruhig Kinners, nich gleich hauen!!!
ich bin ganz entspannt, keine Sorge.
Das mit <base> war schon ned so schlecht - im Prinzip. Bloss werden jetzt meine Dateiinternen Anker (#) ja auch nach extern verlinkt, wo halt kein Ziel auf sie wartet. Mist!!!
Dumm gelaufen, würde ich sagen. Holzhammermethode: Alle Links und Referenzen, die konstant bleiben sollen (also auch dokumentinterne), als absolute Pfade mit Hostnamen ausschreiben, und nur die externen, die sich mal ändern könnten, relativ lassen. Dann wird base nur für diese wirksam.
Aber schön ist anders, muss ich zugeben ... Ich fürchte aber, "schön" lässt dein Szenario mit der gewünschten Flexibilität nicht zu.
So long,
Martin
Dumm gelaufen, würde ich sagen. Holzhammermethode: Alle Links und Referenzen, die konstant bleiben sollen (also auch dokumentinterne), als absolute Pfade mit Hostnamen ausschreiben, und nur die externen, die sich mal ändern könnten, relativ lassen. Dann wird base nur für diese wirksam.
Geht bloss nicht, weil die .html-Seite einen noch viel kryptischeren Namen hat als die externen Links. Sie liegt unter einem gaaaaaanz langen Namen bei baseportal und die eigentliche .html wird erst während der Laufzeit generiert - und es gibt in dem Dokument mindestens genauso viele interne wie externe Links - von daher hab ich jetzt die Wahl zwischen Pest und Cholera ...
Hallo Regina Schlauklug,
und die eigentliche .html wird erst während der Laufzeit generiert
Dann hast du ja serverseitige Möglichkeiten.
Bis demnächst
Matthias
da muss ich noch ein paar Nächte drüber schlafen ...
Hat einer ne Idee oder Lösung. Das Internet hat nix diesbezüglich rausgeworfen ...
Absolut angeben aber ohne scheme://auth also nur path. Beispiel: src="/jquery.min.js". Bin schon paarmal umgezogen, kein Thema. Das ist dann auch kein Thema wenn scheme von http zu https wechseln sollte.
Ergänzung: Absolute, auf das Dateisystem bezogene Pfadangaben für Webressourcen (css, img, js) sind Unfug. Zwischen Pfaden im Dateisystem und URL vermittelt der Webserver über DocumentRoot. Schneide den in DocumentRoot stehenden Teil der Pfadangabe ab, dann bleibt der virtuelle Pfad übrig und Letzerer ist das was die Location bestimmt. Das legt also nicht der Provider fest, sondern Du.
Moin,
Absolut angeben aber ohne scheme://auth also nur path. Beispiel: src="/jquery.min.js". Bin schon paarmal umgezogen, kein Thema. Das ist dann auch kein Thema wenn scheme von http zu https wechseln sollte.
Ergänzung: Absolute, auf das Dateisystem bezogene Pfadangaben für Webressourcen (css, img, js) sind Unfug.
ja, deswegen hat das hier wohl auch noch keiner erwähnt. Warum bringst du das Thema auf den Tisch?
So long,
Martin