我有一个基本url,据我所知,它适用于任何具有类似href="...
的代码但不适用于include
命令调用的文件的链接。
<base href="http://.../www/" target="_blank">
例如,假设我是从基本url指定的目录向下的一个目录。基本目录包含helper.css
和一个名为includes
的文件夹,该文件夹有一个文件sidebmenu.htm
。下一个目录的页面上的代码
`<link href="helper.css" media="screen" rel="stylesheet" type="text/css">`
将加载CCD_ 7。同样,任何链接到基础目录和任何子文件夹中的其他页面都会被正确调用
然而,
<!--#include file="includes/sidemenu.htm"-->
不会工作,除非我使用../
去一个目录
<!--#include file="../includes/sidemenu.htm"-->
然后它就会起作用。
有没有类似于<base>
的东西会使include
调用的文件的路径相对于同一个基本目录?
<--!#include
是一个服务器端包含。这意味着服务器已经导入HTML并将合并后的文件作为一个响应返回。那里的路径不是url,而是服务器上html模板文件的实际文件路径(也就是说,如果像您一样使用file
属性)。因此,您甚至可以包含文档根目录之外的文件,也就是说,如果您的服务器允许(显然Apache不允许)。
<base>
标记用于设置浏览器后续请求的基本url,例如图像url和css文件。
附带说明一下,也许您对HTML5客户端包含感兴趣。这是一种不同的方法,没有SSI的替代品,并且浏览器对atm的支持非常差。不过,阅读材料很有趣。)