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

问题描述 投票:0回答:3

我在页面的

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

我到处寻找答案,但看来我的工作是正确的!那么问题出在哪里呢?

html tags radix
3个回答
138
投票

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

*
实际上取决于你问的是谁,它仍然是相对的,因为它是相对于当前域的。但我更喜欢将其称为绝对路径,因为它表示路径是基于当前域的根路径。尽管如此,我认为从技术上来说,这使得它在宏伟的计划中是相对的,并且仅就当前领域而言是绝对的。无论如何。


18
投票

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

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

你的脚本标签如:

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

0
投票

对于那些找不到答案的人。尝试删除 .htaccess 文件,它几乎每次都会帮助我。

© www.soinside.com 2019 - 2024. All rights reserved.