Aussensaiter Forum

Diskussionen mit neuen Beiträgen

Hier darf jeder frei heraus seine Meinung sagen, solange niemand beleidigt wird. Auf Postings von Vollidioten sinnvollerweise gar nicht erst antworten.
Extrem unerwünscht sind reine Werbe-Beiträge. Danke.

Derzeit nix Neues in der AS-Börse - vielleicht magst Du das ändern?

Demnächst: CORDUROY bei Musik am Fluss, Blauer Steg, Frankfurt Rödelheim am Samstag, den 25. Mai 2024, gegen 18:00 Uhr.

(-) Header verbergen



Übersicht

HTML Xperten sind gesucht !

Greetinx,

hier wurde mich ja schon oft geholfen ...

Meine Frage:

ich will Pfade relativ adressieren. (Habe alles was im Netz zu finden war studiert und keine Lösung gefunden - das nebenbei - oder ich bin zu blöd).

Beispiel:

Gefunden habe ich rückwarts relativieren mit ../../ etc.

Ich will aber vorwärts relativieren - also vom Rootverzeichnis (da wo index.htm ist) zu Datei - ohne die Pfadangaben.

Hätte gedacht mit "././Datei.htm" geht das - aber geht nicht.

Wer weiss wies geht ?

GruZZ *


Re: Das hier Lesen - Haupt Fred ist fehlerhaft !!!

Greetinx,
hier wurde mich ja schon oft geholfen ...


Meine Frage:
ich will Pfade relativ adressieren. (Habe alles was im Netz zu finden war studiert und keine Lösung gefunden - das nebenbei - oder ich bin zu blöd).

Beispiel:

href="Pfad1/Pfad2/Datei.htm"

Gefunden habe ich rückwarts relativieren mit ../../ etc.
Ich will aber vorwärts relativieren - also vom Rootverzeichnis aus (da wo index.htm ist) zu Datei - ohne die Pfadangaben.
Hätte gedacht mit "././Datei.htm" geht das - aber geht nicht.

Wer weiss wies geht ? 


GruZZ *


Re: Das hier Lesen - Haupt Fred ist fehlerhaft !!!

./ ist einfach das aktuelle Verzeichnis (also kein Unterverzeichnis). Ich bin mir nicht sicher, ob diese Schreibweise im Zusammenhang mit Webseiten überhaupt eine Rolle spielt , denn ein Link auf ./Datei.htm führt - genau wie Datei.htm ohne Punkt und Slash - zu eben dieser .htm-Datei, die im aktuellen Verzeichnis liegt.

Mit ../ kann man zum nächsthöheren Verzeichnis kommen. Eine solche relative Angabe ist möglich, weil es immer nur genau ein Oberverzeichnis geben kann. Aber wie sollte das bei Unterverzeichnissen funktionieren? Deren Anzahl ist ja nicht beschränkt. So ein Mechanismus könnte nur funktionieren, wenn man auf Verzeichnisse mit mehreren Unterverzeichnissen verzichtet. Ich kann mir aber nur schwer vorstellen, wie man so eine tiefe Verzeichnisstruktur sinnvoll verwenden könnte.

Wenn du möchtest, das auf dem Server nach Datei.htm gesucht wird (weil die Datei mal hier, mal dort liegen könnte): Das geht nicht so ohne weiteres, jedenfalls nicht mit HTML. Aber ich denke eher, dass du etwas falsch verstanden hast. Wozu sollen denn diese Pfade dienen?

Gruß
Oli


Re: Das hier Lesen - Haupt Fred ist fehlerhaft !!!

Hallo Oli,

ich versuchs zu erklären...

Statt absoluten Rferenzen (zb http://www.myweb.de/Pfad1/Pfad2/Datei.htm) will ich das ohne www, weil ich ja auf meinem PC das auch testen will.

Mit ../../ etc komme ich ja nur rückwärts bezogen auf den Pfad wo ich grade bin.

Ich will aber vorwärts adressieren.

Also immer vom Root Dir aus gesehen vorwärts zu Datei.htm.

Ich habe meine Unterseiten in einer Pfadstruktur angelegt ums übersichtlicher zu gestalten.

Wie bin ich drauf gekommen: bisher hatte ich mein Menue System in jeder Unter-Seite drin. Um es mit include einzubinden (PHP) kann ich jetzt nur eine Adressierung verwenden, weil ich aber vorwärts und rückwärts aus den Unterseiten springe - geht das bisa jetzt nicht.

In Worten bräuchte ich also "immer von Root ausgehend/Pfad1/Pfad2/datei.htm"

GruZZ *


Re: Das hier Lesen - Haupt Fred ist fehlerhaft !!!

Hi *,

ich glaube, Du hast da einen grundlegenden Denkfehler in Deinem Ansatz. Angenommen, es wäre möglich, relativ nach unten statt nach oben zu verlinken (was meines Wissens nach nicht geht), dann hast Du bzw Dein Script das Problem, dass es ja gar nicht weiss, wohin es gehen soll, um die Datei zu finden. "gehe von hier zwei etagen tiefer und zeige test.html an" funktionierte nur, wenn es eine lineare abstufung nach unten gibt. hast du aber zb im ersten unterverzeichnis mehrere verzeichnisse, dann müsste dein script in jedem dieser verzeichnisse nachsehen, ob es dort eine test.html gibt.

du musst weiterhin noch unterscheiden, dass es eine dateisystem absolute verlinkung gibt und die webserver absolute verlinkung und je mach dem, wie du 'auf deinem pc' testen willst, spielt das eine rolle.

die php includes zb orientieren sich immer am dateisystem, ein include mit '/test/test.inc' würde immer ganz oben oberste ebene festplatte 'test/' suchen und nicht wie zb ein link in html mit '/' die oberste ebene deiner webroot, die im dateisystem zb in '/var/www/deinpaket/deinedocs/' liegen könnte.

aus diesem grund ist es oft so, dass die angabe, ab wo die webseiten ausgeliefert werden, für scripte in einer config variablen abgelegt werden, und diese kann man dann für test und live system unterschieldich setzen.

so wie du dein szenario beschreibst, hast du aber 'auf deinem pc' gar keine testumgebung, also einen webserver, laufen, sondern versuchst, direkt über das dateisystem, also im browser mit file:// statt http:// zu testen?

wenn du eine testumgebung am start hast, dann sollte es deinen webseiten egal sein, wo physikalisch auf dem live server oder dem testserver deine htroot sitzt, da erst ab da für urls und verlinkungen geschaut wird.

für die php includes sieht das anders aus, wobei hier die lösung mit der config variablen mit dem absoluten pfad zu den includes/der htroot hilft.

viele grüsse

tom


Re: Das hier Lesen - Haupt Fred ist fehlerhaft !!!

Hi
: Falls ich dich richtig verstehe: Würde es nicht schon ausreichen, in index.html include 'menu.htm' und in tiefer.htm include '../menu.htm' zu schreiben?

das ist prinzipiell richtig und funktioniert. Evtl gibs das Problem, dass (unix)Webserver die Pfade so erkennen, der lokale (windows)pc aber mit backslashes "\" statt "/" arbeitet.

Ausserdem ist die Abhängigkeit, dass "tiefer.html" nur eine Ebenen tiefer sitzen darf, damit der Menu-Include funktioniert, recht unflexibel.

Ich würde die Struktur so aufbauen:

index.php
_includes/menu.inc.php
tiefer/tiefer.php
tiefer/nochtiefer/tiefer.php

und die includes mit der im anderen post erwähnten pfadvariable setzen.

// test:
$includepath = '/absoluter/link/zu/den/_includes';
// live: $includepath = '/liveserver/htdocs/_includes';

index.php : include($includepath . '/menu.inc.php');
tiefer.php (egal wo): include($includepath . '/menu.inc.php');

Viele Grüße
Tom


Re: Das hier Lesen - Haupt Fred ist fehlerhaft !!!

Hi *,

noch eine Frage:

:In Worten bräuchte ich also "immer von Root ausgehend/Pfad1/Pfad2/datei.htm"

Meinst Du die "Links" in Deinem Menu, also das, was in den href="" angeben wird?

Ist das also Dein Problem, dass Du diese alle mit der Domain "http://www.test.de/seite1.html" angegeben hast, und das dann lokal nicht geht?

Also wenns daran liegt, da ist die Lösung, die href mit "/seite1.html", "/tiefer/tiefer.html" zu setzen und im head der html datei kannst du die baseHref setzen.

Du brauchst aber dann fürs lokale Testen einen lokalen Webserver. oder mal probieren ob das setzen des tags im head der html datei auch mit "/zur/lokalen/testversion/" klappt, eigentlich dürfen da nur richtige "http://www.domain.tld" Angaben rein…


Re: Das hier Lesen - Haupt Fred ist fehlerhaft !!!

Hallo Tom,

diese Dinge (was ich brauche) sind schwer geschrieben darzustellen ...

Testen heißt für mich auf meinem PC den Browser aufzurufen und da Datei öffen - bsp file:///E:/Webprojekt/index.php aufzurufen.

Das Menu.htm (im gleichen Ordner wie index.php) welches ich mit include in index reinlade, enthält links zu bsp file:///E:/Webprojekt/Pfadlevel1/Pfadlevel2/Pfadlevel3/Seite1.php

Das ist für mich "vorwärts" - als Link im HTML code steht tatsächlich "Webprojekt/Pfadlevel1/Pfadlevel2/Pfadlevel3/Seite1.php"

Wenn ich nun das menu.htm in Seite1.php "reinlade" und bsp. nach einer Datei in gleicher Pfadstruktur-Ebene verlinke wie Pfad2 steht da

"../../Pfadlevel3/Seite2.php" - das ist für mich rückwärts.

Ist schwer so kanpp darzustellen.

In einem "normalen" Dateisystem würde ich es einfach mit Laufwerk/Pfad/Pfad ... machen können.

Und egal wo ich mich befinde immer richtig ankommen, da ich ja immer sozusagen von vorne anfange. Ebenso ist ja auch bei der absoluten Adressierung.

Was (mir) fehlt ist also lediglich der Bezugspunkt von wo gesucht wird. Also gibt es ein /// oder #/// in der Art um anzusagen gehe einfach von einem angegeben Root immer tiefer.

Habe jetzt inzwischen noch mehr Beispiele und Erklärungen über Google gelesen. Aber nix gefunden.

Leider ist die Struktur meines Projekts jetzt zwar sehr aufgeräumt- aber dieses Problem scheint nicht lösbar - obwohl es mir einfach erscheint. Aber Script Sprachen von anno Dobak sind halt begrenzt...

GruZZ *


ACHTUNG das zuerst lesen

Inzwischen habe ich in der englischen Literatur eigentlich das was ich bräuchte gefunden - nur es funktioniert nicht ? Warum ...

GruZZ *

A root-relative link is created when the href value is relative to the website root.

On the Motive website, a root-relative link to the homepage (from any webpage) is:

Motive homepage

Beginning the href value with / (forward slash) begins the path from the root directory of the current website. The forward slash is automatically replaced with the transfer protocol and domain name of the current website. For the Motive website, the forward slash is replaced with http://www.motive.com


Re: ACHTUNG dann das ...

Der Fehler - es muss ein Backslash \ sein ... dann funtionierts auf dem Server schonmal !

Aber nicht auf dem PC - da passiert dann einfach garnix - auch merkwürdig ??

Also ist das jetzt das Endproblem - warum nicht auf dem PC ...

GruZZ *