是否有普遍接受的方法让所有链接和对图像、脚本、样式表的引用都相对于某个路径,而不管当前文档的 URL 是什么?
让我们从头开始。我正在用 PHP 开发一个自定义内容管理系统。我正在使用mod_rewrite
重定向所有请求http://domain.com/path/artist/edit/25
,例如http://domain.com/path/index.php?url=/artist/edit/25
. 所以URL后面的部分http://domain.com/path/
实际上是虚拟的。
我希望所有链接都采用类似的格式,并以类似的格式<a href="artist/show">...</a>
引用图像、脚本等<link href="ui/css/style.css"...>
。
好吧,这似乎是可能的:
...
<base href="http://domain.com/path/" />
...
通过这种方式,我可以通过如下方式链接到脚本和样式表:
...
<!-- Custom page style CSS -->
<link href="ui/css/style.css" rel="stylesheet" type='text/css'>
<!-- Support for CSS3 media query in IE8 -->
<script type="text/javascript" src="ui/js/respond.js"></script>
<!-- MooTools 1.6.0 -->
<script type="text/javascript" src="ui/js/MooTools-Core-1.6.0.js"></script>
...
但是,AFAIK<base href=...>
应该匹配当前页面请求(即http://domain.com/path/artist/edit/25
)。它破坏了整个概念。
这就是为什么我需要你澄清:
<base href=...>
指向目录而不是当前文档 URL是一种普遍接受的做法吗?- 这种做法是否符合 HTML
<base>
元素的使用要求? - 它会以任何方式影响像 Googlebot 这样的爬虫吗?他们是否需要
<base href=...>
匹配每个特定的文档 URL?
我也想知道当 URL 的某些部分是虚拟的时,您如何解决相对链接和资源引用的问题。我发现像 WordPress 这样的项目倾向于完全避免相对链接并采用“绝对链接方式”。