65

我在页面部分 有一个<base>如下标签:<head>

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

下面是一个相对的脚本(当然是在 之后<base>):

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

但是当我从 firebug 打开 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">  

我到处寻找答案,但似乎我做对了!那么问题是什么?

4

2 回答 2

126

/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>

*实际上取决于你问的是谁,它仍然是相对的,因为它与当前域无关。但我更喜欢称它为绝对,因为它表示路径来自根,基于当前域。虽然,我想从技术上讲,这使得它在宏伟的计划中是相对的,而仅就当前领域而言是绝对的。任何。

于 2012-07-17T10:55:38.863 回答
17

尝试使用您的基本标签,例如:

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

和你的脚本标签,如:

<script src="assets/jquery-1.7.1.min.js">
于 2012-07-17T10:59:24.070 回答