2011-11-21 16 views
11

Próbuję utworzyć przyjazny dla użytkownika URL przy użyciu przepisywania trybu. Moim problemem jest to, że po nadaniu kategorii takiej jak "nazwa" mojemu adresowi URL, gdy zadzwonię na tę stronę przy użyciu nowego adresu URL, nie będzie można załadować pliku CSS lub obrazów.Brakujący plik CSS i obrazy po przepisaniu adresu URL

mam link jak:

localhost/mywebsite/id projekt = 22

Nowym linku jest coś takiego jak

localhost/mywebsite/projekt/22/myproject.project

kod htaccess:

RewriteRule ^project/([0-9]*)/.*\.project$ /project.php?project=$1 [L] 

(to nie może być w 100% rację, ale nie mam dostępu do mojego kodu teraz tak po prostu napisał to i to działa dobrze na oryginalnego źródła)

Mój katalog główny jest localhost/mywebsite/

i mój plik CSS jest w css/style.css

localhost/mywebsite/css/style.css

mój .htaccess

localhost/mywebsite/.htaccess

i mój plik project.php jest w

localhost/mywebsite/project.php

So na stronie projektu mam dostęp do pliku CSS przy użyciu ścieżki względnej,

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

, ale kiedy używam przepisanej strony URL, nie mogę znaleźć pliku CSS.

Nie mogę użyć ścieżki bezwzględnej z nazwą domeny, ponieważ nie mam jeszcze domeny! i może być cokolwiek.

jednym ze sposobów jest użycie ścieżki względnej do domeny jak sugerowano na podobne pytania localhost/mywebsite/project.php i gdy uruchamiam mój skrypt lokalnie mój katalog główny jest localhost więc ogniwo css powinien wyglądać

href = "mywebsite/css/style.css"

ale kiedy idę na żywo i powinien zmienić wszystkie linki do prawdopodobnie coś

href = "/ css/style.css”

wydaje się to dużo pracy

Odpowiedz

26

uzyskać lokalną wersję dodać

<base href="//localhost/mywebsite" /> 

do sekcji head

i dla żywych wersjach zmienić na

<base href="//your.domain.here" /> 

odniesienia w http://www.w3.org/TR/html4/struct/links.html#h-12.4

+0

tak, ale są też obrazy i nie mogę zmienić nazwy domeny dla każdego obrazu po uruchomieniu – max

+0

@max, tag 'base' działa również z obrazami. Przykład: http://jsfiddle.net/gaby/JE656/ –

+0

Dla mnie " działało jak czar! :) – jackkorbin

1

wstawić obraz do tego samego pliku z tą samą ścieżkę względną jako odnośnik css href załaduj stronę w przeglądarce, kliknij prawym przyciskiem myszy obraz w internecie Explorer kliknij właściwości i należy zobaczyć, gdzie względna ścieżka faktycznie wskazuje.

+0

Jest to dobry sposób, aby dowiedzieć się, gdzie jesteś w :) – Mattis

+0

Najwyraźniej powinno zawierać mywebsite na localhost on odwołuje bo uważa się za mój korzeń i/mywebsite/folder jest tylko kolejnym katalogu tak jak powinien być zawarte w linku. Nie mogę zmienić wszystkich linków, gdy zaczynam żyć! – max

+0

Nie możesz zmienić wszystkich linków, które są zrozumiałe, więc utrzymuj wszystkie ścieżki w porządku, ale dostosuj każdą ścieżkę z poprawną lokalizacją. Uwaga: nie miałem na myśli użycia bezwzględnej ścieżki, którą miałem na myśli, sprawdzenia bezwzględnej ścieżki i dostosowania względnej ścieżki, dopóki nie uzyskasz poprawnego wyniku. Możesz użyć ../, aby przejść do folderu. – Ozzy

2

trzeba określić ścieżkę bazową lub ścieżkę widok serwer w connection.php a gdy u chcą tę ścieżkę, dokonać tego globalnego. wtedy ta zmienna zostanie wywołana, a css lub obrazy przejdą całą ścieżkę.

np $ SVP = "http://www.example.com/"

globalna $ SVP; echo $ SVP;

tak