PHP In der header.php die CSS-Datei korrekt einbinden

Jack159

Lieutenant
Registriert
Dez. 2011
Beiträge
766
Hallo,

In meinem Webprojekt habe ich wie üblich eine header.html und eine footer.html, in welcher der entsprechende HTML-Code steckt. In der header.html steckt entsprechend auch die Zeile, in der die CSS eingebunden wird, samt Pfadangabe (href):

HTML:
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">

Mein Webprojekt benutzt Clean-URLS. Bisher habe ich immer nur 1 Parameter gehabt, also z.B.:
www.bla.de/profil
www.bla.de/freunde

Bisher funktionierte das einbinden des headers und footers samt CSS problemlos.
Jetzt habe ich aber seit kurzem auch folgende URL's:
www.bla.de/profil/10

Hier ist nun das Problem, dass zwar header und footer problemlos eingebunden werden, jedoch nicht die CSS.
Dazu müsste ich dann die obige HTML-Zeile der header.html wie folgt ändern:

HTML:
<link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet">

Dann funktioniert alles zwar für die URL www.bla.de/profil/10 aber dann wiederrum nicht für die URL's weiter oben mit nur 1 Parameter...

Ich hoffe ihr versteht mein Problem.
Wie kann ich mein Problem lösen? Wie kriege ich eine allgemeine Pfadangabe für die CSS hin?
 
@ Snooty:

Mit

HTML:
 <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">

geht es überhaupt nicht, wenn dann nur mit (vorderstes Slash muss weg):

HTML:
 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">

Allerdings dann auch wie bisher gehabt wie im Startpost beschrieben...


Hier mal meine Projektstruktur:

eee.PNG

Zur Info:
Die Router-Funktionalität steckt in der index.php.
Diese ruft dann abhängig vom Parameter eine entsprechende Controllermethode auf, welcher wiederrum eine entsprechende Modelmethode aufruft. Sobald die Modelmethode abgearbeitet ist, included die Controllermethode die entsprechende View-Datei, welche dann jeweils den header und footer inkludiert und den Content enthält.

Wie gesagt bei URLs mit 1 Parameter alles kein Problem. Problematisch wirds erst bei 2 Parametern...
 
#1 Jack159

Du könntest anstatt eines Relativen - einen absoluten Pfad verwenden:

HTML:
<link href="http://www.bla.de/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
 
Zuletzt bearbeitet von einem Moderator:
Jack159 schrieb:
HTML:
 <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
geht es überhaupt nicht, wenn dann nur mit (vorderstes Slash muss weg):
Dann hast du elementar was falsch gemacht bei der Konfiguration des Servers, der .htaccess oder du hast schlichtweg <base> nicht in Betracht gezogen. Relative URLs zu / müssen funktionieren, so wirds schließlich gemacht.

Smartass schrieb:
Du könntest anstatt eines Relativen - einen absoluten Pfad verwenden:
HTML:
<link href="http://www.bla.de/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
Ganz blöde Idee, wenn du dann irgendwann Mal HTTPS anbieten willst...
 
@Smartass: Siehe Daaron, aber wenn nötig nutz wenigstens
HTML:
<link href="//www.bla.de/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
 
Daaron schrieb:
Dann hast du elementar was falsch gemacht bei der Konfiguration des Servers, der .htaccess oder du hast schlichtweg <base> nicht in Betracht gezogen. Relative URLs zu / müssen funktionieren, so wirds schließlich gemacht.

Meine .htaccess sieht wie folgt aus:

Code:
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]


Mit <base> würde sich das Problem ja nur verlagern, oder?
 
Facebook Clone? Soso.. wer weiß, was du da für böse Clickjacking-Software aufziehst... *facepalm*

Befindet sich dein Projekt in einem Unterordner? Nein?

Wenn nicht, dann passt der Pfad "irgendwie" nicht. Kannst du denn manuell über http://www.bla.de/bootstrap/css/bootstrap.min.css die Bootstrap-CSS anzeigen lassen?
 
Zurück
Oben