2012-07-17 41 views
35

我有如下一個BASE標籤頁面的頭部分:爲什麼base標籤不能用於相對路徑?

<base href="http://localhost/framework"> 

而且一個腳本低於(基準標記之後當然)是相對的:

<script src="/assets/jquery-1.7.1.min.js"> 

但是當我打開jQuery的從螢火蟲它表明:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>404 Not Found</title> 
</head><body> 
Blah Blah Blah.... 

當我使用下面的鏈接,這是確定,但:

<script src="http://localhost/framework/assets/jquery-1.7.1.min.js"> 

我到處尋找答案,但似乎我在做我的工作吧!那麼問題是什麼?

回答

70

/assets/jquery-1.7.1.min.js不是相對的,而是絕對*,即使使用base標籤,/也會將其轉換爲根。

如果您刪除/,它應該使其相對於當前路徑不變,當base標記存在時,它應該是http://localhost/framework/

您還需要在href末尾添加尾隨/,以表明它是一個文件夾。

全部工作示例:

<!doctype html> 
<html> 
<head> 
<base href="/test/" /> 
<script src="assets/test.js"></script> 
<body> 
hi 
</body> 
</html> 

*實際上取決於誰你問,它仍然是相對的,因爲它是相對於關閉當前域。但我更願意稱之爲絕對的,因爲它表示路徑來自根目錄,基於當前域。雖然,我想在技術上,這使得它在事物的宏偉計劃中是相對的,絕對只是在當前領域方面。隨你。

+0

我已經把它改爲:資產/ jQuery的1.7.1.min.js但沒有成功。正如我所說,我找不到404。 – ALH 2012-07-17 11:02:40

+0

@phpGeek尋找Firebug(或F12或其他任何),它現在試圖請求什麼URL? – 2012-07-17 11:03:20

+0

查看我的問題的編輯部分。 – ALH 2012-07-17 11:05:20

9

試着讓你的基礎標籤,如:

<base href="http://localhost/framework/"> 

和腳本標籤,如:

<script src="assets/jquery-1.7.1.min.js"> 
相關問題