为什么基本标签不适用于相对路径?

ALH*_*ALH 49 html tags base

我在页面的head部分有一个BASE标记:

<base href="http://localhost/framework">
Run Code Online (Sandbox Code Playgroud)

并且下面的脚本是相对的(当然在基本标记之后):

<script src="/assets/jquery-1.7.1.min.js">
Run Code Online (Sandbox Code Playgroud)

但是,当我从firebug打开jQuery时,它显示:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body> 
Blah Blah Blah....
Run Code Online (Sandbox Code Playgroud)

当我使用以下链接时,它可以:

<script src="http://localhost/framework/assets/jquery-1.7.1.min.js">  
Run Code Online (Sandbox Code Playgroud)

我到处寻找答案,但似乎我的工作正常!那么问题是什么?

Rud*_*ser 103

/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>
Run Code Online (Sandbox Code Playgroud)

*实际上取决于你问的是谁,它仍然是相对的,因为它相对于当前域.但我更喜欢称之为绝对,因为它表示路径来自根,基于当前域.虽然,我认为从技术上讲,这使得它在宏观方案中相对而言,并且仅在当前领域方面是绝对的.随你.

  • @phpGeek 我添加了(测试过的)示例代码来显示此工作原理。在“href”中添加尾随的“/”,您仍然需要删除资产前面的“/”。 (2认同)
  • “您还需要在 href 末尾添加尾随 /”-&gt; 这就是解决我的问题的方法! (2认同)

tec*_*bar 15

尝试使用基本标记:

<base href="http://localhost/framework/">
Run Code Online (Sandbox Code Playgroud)

和你的脚本标签如:

<script src="assets/jquery-1.7.1.min.js">
Run Code Online (Sandbox Code Playgroud)