2011-11-21 96 views
11

我試圖使用模式重寫來使用戶友好的URL。 我的問題是,在給我的URL給'name'等類別之後,當我使用新的URL調用頁面時,它無法加載CSS文件或圖像。URL重寫後丟失CSS文件和圖像

我有這樣一個鏈接:

本地主機/ mywebsite /項目ID = 22

新的鏈接是一樣的東西

本地主機/ mywebsite /項目/ 22/myproject.project

htaccess代碼:

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

(它可能不是100%正確的,但我沒有訪問我的代碼,現在,所以我只是寫了這個,它工作正常的原始源)

我的根目錄爲localhost/mywebsite/

和我的CSS文件中的CSS/style.css中

本地主機/ mywebsite/CSS/style.css中

我的htaccess

本地主機/ mywebsite /的.htaccess

和我project.php文件是

本地主機/ mywebsite/project.php

所以在項目頁面中,我可以使用相對路徑訪問CSS文件,

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

但是當我使用重寫的URL頁面時找不到CSS文件。

我不能使用域名的絕對路徑,因爲我還沒有域名!它可以是任何東西。

一個方法是使用相對路徑來域對類似的問題的建議 本地主機/ mywebsite/project.php ,當我localy運行我的腳本我的根目錄 本地主機 所以CSS鏈接應該像

HREF = 「mywebsite/CSS/style.css的」

但是當我去住,我應該改變所有鏈接到大概就像

href =「/ css/style。CSS」

這似乎是很多工作

回答

26

對於本地版本添加

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

到頭部

,併爲您的生活版本中,它在http://www.w3.org/TR/html4/struct/links.html#h-12.4

+0

是的,但也有圖像,我不能改變每個圖像的域名後上線 – max

+0

@最大,'基地'標籤與圖像一起工作..例如http://jsfiddle.net/gaby/JE656/ –

+0

對我來說,像魅力一樣工作! :) – jackkorbin

1

插入的圖像與其他的CSS HREF鏈接相同的相對路徑相同的文件,在瀏覽器中加載頁面,在互聯網右鍵單擊圖像資源管理器,單擊屬性,你應該看到的相對路徑實際指向。

+0

這是找出你在:) – Mattis

+0

顯然我應該包括mywebsite對他的Cuz本地主機認爲是我的根和/ mywebsite /文件夾鏈接的好辦法是另一個目錄,以便它應該包含在鏈接中。我不能改變所有的鏈接,當我去生活! – max

+0

你不能改變所有可理解的麻煩的鏈接,所以保持所有路徑相對,但調整每個路徑與正確的相對位置。注意:我並不是指使用絕對路徑,我的意思是檢查絕對路徑並調整相對路徑,直到您找到正確的路徑。你可以使用../上去一個文件夾。 – Ozzy

2

改變

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

引用您必須定義基本路徑或connection.php服務器收看路徑,每當ü希望這條道路,使那全球。那麼該變量將被調用,並且CSS或圖像將採用整個路徑。

例如 $ SVP = 「http://www.example.com/」

全球高級副總裁$; echo $ SVP;

所以