我正在尝试使用基本标记设置本地站点根目录。以下代码无效。难道我做错了什么?如何将mysite
文件夹设置为基础?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="file:///home/me/mysite"></base>
<title> Asset Take On Process </title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="/css/main.css" />
</head>
<body>
some stuff
</body>
</html>
网站文件夹结构
mysite
|___css
|___img
|___js
依旧......
当我加载网页时,根本看不到main.css
文件夹中的css
。
答案 0 :(得分:5)
正确的标签是
<base href="file:///home/me/mysite/"/>
如果您希望将file:///home/me/mysite/
设置为基地址,那么例如css/main.css
是指file:///home/me/mysite/css/main.css
。请注意斜杠的重要性。在href
中的base
值中,忽略最后一个斜杠之后的任何内容:file:///home/me/mysite
表示与file:///home/me/
相同。
这是一个令人困惑的话题,一些浏览器的实现可能会支持值中的相对URL,这进一步混淆了它;根据规范,只允许使用绝对URL。
通常没有理由使用base
元素。诸如css/main.css
或../css/main.css
之类的相对URL工作正常,指定地址相对于HTML页面的地址。这意味着如果将站点上载到服务器上,则无需更改它们。
答案 1 :(得分:4)
如果删除那个/,它应该使它相对于当前路径,当存在基本标记时,
http://localhost/website/.
您还需要在href的末尾添加一个尾随/,以表明它是一个文件夹。
完整的工作示例:
<!doctype html>
<html>
<head>
<base href="/test/" />
<script src="assets/test.js"></script>
<body>
hi
</body>
</html>
请参阅此链接
答案 2 :(得分:3)
只是为了澄清其他答案:
基本标记必须以斜杠结尾。 以下网址不得以斜杠开头:
这是合乎逻辑的,因为将它们加在一起会形成一个完整的地址。但这是违反直觉的,因为我们习惯使用/images/image.jpg让事情无处不在。