Ich interpretiere mal frei, dass Du das "../" rausnehmen musst.
Dafür müsste man aber wissen, welche Dateien in welchem Verzeichnis stecken.
Hi, ich habe folgendes problem:
ich habe 3 Dateien: header.php, footer.php und index.php
nun im header ist folgender code drin:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>titel</title>
<link href="../css/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
im Footer:
</body>
</html>
und im index.php:
<?php include("includes/header.php"); ?>
<?php include("includes/footer.php"); ?>
nur leider wird im index.php das stylesheet nicht übernommen (Background-Farbe).
Was mache ich falsch?
danke für euer feedback.grüsse...tom
Im Nichtstun bleibt nichts ungetan - Laotse
Ich interpretiere mal frei, dass Du das "../" rausnehmen musst.
Dafür müsste man aber wissen, welche Dateien in welchem Verzeichnis stecken.
Grüße vom Griechen,
Cybergreek!
everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht
hab mal alles in ein zip gepackt...
Im Nichtstun bleibt nichts ungetan - Laotse
Grüße vom Griechen,
Cybergreek!
everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht
Ich würde immer absolute Pfade nehmen. Dann würde es so aussehen:
HTML-Code:<link href="/css/styles.css" rel="stylesheet" type="text/css" />HTML-Code:body{ background-image:url(/images/background.jpg); }EDITbzw: /hotel/css/styles.css jenachdem wo dein DocRoot beginnt.
irgendwie bin ich zu blöd dafür...es funzt nicht mit direktem pfad...
Im Nichtstun bleibt nichts ungetan - Laotse
Hast du es auf einen Webserver hochgeladen?
Nur dann würde es mit dem Pfad funktionieren.
teste alles auf xampp, auch da sollte es doch gehen....?? Auch wenn ich es auf den webserver hochlade...nix hintergrund eingefärbt....
Geändert von Tom (28.11.2008 um 14:10 Uhr)
Im Nichtstun bleibt nichts ungetan - Laotse
Ja, Xampp ist ein Webserver.
Wie lautet denn die URL, die du im Browser eingibst:
http://localhost/hotel/index.php oder
http://localhost/xampp/hotel/index.php usw...
Hier wäre es dann wahrscheinlich besser, sich von absoluten Pfaden zu verabschieden.
Im Grunde ist es ganz einfach:
- index.php ist er Ausgangspunkt (Root)
- css liegt im Verzeichnis unter dem Ausgangspunkt, dann sieht es so aus:
Da sich die styles.css dann im Ordner css befindet, musst du einen Ordner zurück, das wird mit ".." gemacht, dann das Bild im Ordner images aufrufen.HTML-Code:<link href="css/styles.css" rel="stylesheet" type="text/css" />
Probier mal bitte.HTML-Code:body{ background-image:url(../images/background.jpg); }
Ich werd das Gefühl nicht los, dass cybergreek das schon von Anfang an geahnt hätte..![]()
Geändert von fuchzga (28.11.2008 um 14:36 Uhr) Grund: Habs nochmal gegengelesen... *aargh*
jaaaaaaaaaaaaaaaaaa, es funzt... koool, du hast mir das Wochenende versüsst. Dankeschööön
Im Nichtstun bleibt nichts ungetan - Laotse
Grüße vom Griechen,
Cybergreek!
everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht
ich schon wieder
jetzt habe ich einen order gemacht und dort in das neue php-dok folgenden code eingegeben:
<?php include("../includes/header.php"); ?>
<div id="pageaussen">
<div id="topbild"><?php include("../includes/topnavigation.php"); ?></div>
<div id="subnavigation"><?php include("../includes/subnavigation.php"); ?></div>
</div>
<?php include("../includes/footer.php"); ?>
wie es wieder ist, es nimmt mir das css file (wo im header.php ist) nicht an. wo mache ich wieder einen fehler?
Im Nichtstun bleibt nichts ungetan - Laotse
Es gibt 2 unterschiedliche Dinge zu berücksichtigen:
1. das CSS-File wird in der Ordnerstruktur relativ ausgehend vom Pfad der zuerst aufgerufenen Datei gefunden
2. Bilder und externe Elemente, die in der eigentlichen CSS-Datei referenziert werden, müssen relativ zum Pfad der CSS-Datei angegeben werden
Beispiel zu folgender Ordnerstruktur
-css
--themes
---standard
----style.css
-bilder
--icons
---hoch.gif
-include
--header.php
index.php
In der index.php referenziert man die CSS-Datei mittels
oderCode:<link rel="stylesheet" type="text/css" href="./css/themes/standard/style.css">
Wird das Stylesheet in der Datei include/header.php eingebunden, die Datei header.php wird aber wiederum von der Datei index.php inkludiert, so lautet der Pfad zur CSS genau so, da als aktuelles Verzeichnis, das der zuerst aufgerufenen Datei gilt - also das Verzeichnis der index.php.Code:<link rel="stylesheet" type="text/css" href="css/themes/standard/style.css">
Wenn man in der CSS-Datei nun das Icon hoch.gif referenzieren möchte, dann geht das relativ mittels './../../../bilder/icons/hoch.gif'. Jetzt gilt als aktuelles Verzeichnis, das der CSS-Datei, da diese nicht mittesl inlcude per PHP eingebunden wird, sondern durch die link-Angabe per HTML zu einem - vom Rest unabhängigen - HTTP-Request führt.
Alles klar?![]()
Da unterscheiden wir uns von der Vorgehensweise. Ich bevorzuge immer relative Pfade, damit man das Projekt beliebig verschieben und ohne Anpassungen auf beliebigen Servern in beliebigen Ordnerstrukturen speichern kann. Bei fest verdrahteten, absoluten Pfadanagben hast Du teilweise enormen Anpassungsaufwand wenn sich das Script in eine andere Ordnerstruktur einfügen soll.
Als "fauler" Programmierer mache ich mir einmal Gedanken und danach nie wieder. Je weniger Abhängigkeiten ein Projekt hat - insbesondere auch in Bezug auf die Laufumgebung (dem Server) - , umso leichter kann es in anderen oder veränderten Umgebungen eingesetzt gemacht werden.
Sicherlich ist der Anpassungsaufwand auch noch gering, wenn man am Anfang des Scripts eine globale, absolute Pfadvariable definiert, auf die man sich bei allen Pfadangaben bezieht. Das ist Geschmackssache und viel Wege führen nach Rom. Ich bevorzuge aber, wie gesagt, die Variante mit relativen Pfadanagben, wo gar nichts angepasst werden muss.
Nochmal zu Pfaden:
1) Alles was im Browser geladen wird: relative Pfade
2) Alles was auf Filebasis im Script inkludiert wird: absolute Pfade
es empfiehlt sich, dieses in Konstanten zu definieren, dann braucht man nicht mehr drüber nachzudenken.
das ganze in die index.php, fertig.PHP-Code:define ('WEB_PROTOCOL', 'http://');
define ('WEB_ROOT', WEB_PROTOCOL . $_SERVER['HTTP_HOST'] . '/');
define ('SITE_ROOT', WEB_ROOT . substr($_SERVER['REQUEST_URI'], 0, -1 * strlen(basename($_SERVER['REQUEST_URI']))));
define ('SITE_PATH', str_replace('\\', '/', dirname(__FILE__) ). '/');
Bei Pfaden in CSS-Dateien wie DSB schon gesagt hat: relative Pfade zu dieser CSS-Datei benutzen.
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)