2012-04-03 9 views
0

Das folgende Problem macht mich verrückt, vielleicht denke ich zu schwierig.Mein PHP-Controller kann keine CSS-Dateien enthalten

Hier ist die Sache, ich entwickelte ein kleines MVC-Framework, das gut funktioniert. Atleast ohne URL-Umschreiben.

Das Problem ist, dass sobald ich URL-Rewrite verwenden, Dinge wie die CSS oder Bilder, die in den Vorlagen enthalten sind in das falsche Verzeichnis gerichtet sind.

Wenn ich zum Beispiel gebe: http://www.domain.com/home dann ist alles in Ordnung und die CSS-Datei aus dem Verzeichnis http://www.domain.com/css/ geladen werden.

Aber wenn ich tippe: http://www.domain.com/home/ die CSS-Datei wird nicht geladen werden, da seine Suche nach den CSS-Dateien in http://www.domain.com/home/css/ Welches ist unwichtig das falsche Verzeichnis. Es scheint, dass es home/als ein Verzeichnis sieht, wo es nach den enthaltenen Dateien sucht.

Wenn ich überhaupt kein URL-Rewriting benutze, einfach durch Eingabe von: http://www.domain.com/index.php?slugs=home/ dann gibt es überhaupt keine Probleme. Ich glaube also nicht, dass das Problem von meinem Skript verursacht wird, weshalb ich denke, dass die Probleme in der .htaccess-Datei gesucht werden sollten.

Hier ist meine htacces Datei:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php|images|css|robots\.txt) 
RewriteRule ^(.*)$ /astrostrategy/index.php?slugs=$1 [L] 

Gibt es eine Möglichkeit, dass home/test/was auch immer (Die Segmente) werden nicht als Verzeichnis gesehen?

Hoffnung Sinn meinen Beitrag gemacht, denke ich oft zu kompliziert: P

Bereits Danke für jede Hilfe! :)

Gr, Hermes.

Antwort

2

Wenn der Tod die Antwort immer die base tag auf die URL in relative Pfade zu verwenden, setzen nicht funktioniert kann

+0

Gestern habe ich es versucht, aber irgendwie hat das auch nicht funktioniert. Bis heute! Scheint, wo ich frustriert und über etwas geschaut habe. Aber jetzt endlich habe ich eine Lösung gefunden;) Danke! – HermesTrismegistus

2

Es scheint, dass Sie relativ zum aktuellen Verzeichnispfad für CSS verwenden. Wenn Sie http://www.domain.com/home/ verwenden Browser dauert home als Verzeichnis und CSS-Datei wird in http://www.domain.com/home/css/ befinden. Mein Vorschlag ist die Verwendung relativ zum Root-Pfad. Jetzt verwenden Sie etwas wie:

<link rel="StyleSheet" type="text/css" href="css/style.main.css" /> 

ist es besser, absoluten Pfad oder relativ zum Root-Pfad zu verwenden.

<link rel="StyleSheet" type="text/css" href="/css/style.main.css" /> 
+0

I definiert all meinen Weg in einer Config-Datei bereits ist, die auch am Ende in definiert in genauso wie du es erklärst. Das Hauptproblem ist, dass, wenn ich beispielsweise http://www.domain.com/forum eingeben, nach dem css-Ordner im Forum-Verzeichnis suchen wird. – HermesTrismegistus

+0

können Sie HTML-Code Ihrer Seite einfügen? – undone

Verwandte Themen