8

我正在尝试使用 base 标记设置本地站点根目录。以下代码不起作用。难道我做错了什么?如何将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.csscss

4

3 回答 3

6

如果您删除该 /,它应该使其相对于当前路径,当存在基本标记时,它将是

http://localhost/website/.

您还需要在 href 的末尾添加一个尾随 /,以表明它是一个文件夹。

完整的工作示例:

<!doctype html>
<html>
<head>
<base href="/test/" />
<script src="assets/test.js"></script>
<body>
hi
</body>
</html>
  • 实际上取决于你问的是谁,它仍然是相对的,因为它与当前域无关。但我更喜欢称它为绝对,因为它表示路径来自根,基于当前域。虽然,我想从技术上讲,这使得它在宏伟的计划中是相对的,而仅就当前领域而言是绝对的。任何。

请参考此链接

http://social.msdn.microsoft.com/Forums/ie/en-US/c51bb8b9-40ab-437b-a125-88b660f3e1ca/ie8-base-tag-issues

于 2013-08-26T09:53:15.487 回答
5

一个正确的标签是

<base href="file:///home/me/mysite/"/>

如果您希望设置file:///home/me/mysite/为基地址,例如css/main.css指的是file:///home/me/mysite/css/main.css. 注意斜线的重要性。在 in 的href值中base,最后一个斜杠之后的任何内容都将被忽略:与那里file:///home/me/mysite的含义相同file:///home/me/

这是一个令人困惑的话题,并且某些浏览器的实现会进一步混淆,这些实现可能支持值中的相对 URL;根据规范,只允许使用绝对 URL。

通常没有理由使用该base元素。相对 URL,例如css/main.cssor../css/main.css可以正常工作,将地址指定为相对于 HTML 页面的地址。这意味着如果将站点上传到服务器,则无需更改它们。

于 2013-08-26T11:08:21.850 回答
5

只是为了澄清其他答案:

基本标记必须以斜杠结尾。以下 URL不得以斜杠开头

这是合乎逻辑的,因为将它们加在一起就构成了一个完整的地址。但这是违反直觉的,因为我们习惯于使用 /images/image.jpg 来让事情无处不在。

于 2014-07-19T09:02:10.833 回答