是否有相当于'<base />'的文件路径?

时间:2015-03-27 21:01:27

标签: html relative-path base server-side-includes

我有一个基本网址,据我所知,它适用于任何代码类似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">`

将加载helper.css。同样,正确调用基本目录中的其他页面和任何子文件夹的任何链接。

然而,

<!--#include file="includes/sidemenu.htm"-->

除非我使用../上一个目录

,否则

将无效

<!--#include file="../includes/sidemenu.htm"-->

然后它会工作。

是否有类似于<base>的内容会使include相对于同一基本目录调用文件的路径?

1 个答案:

答案 0 :(得分:0)

<--!#include是服务器端包含的。这意味着服务器已经导入HTML并将组合文件作为一个响应返回。那里的路径不是网址,而是实际的文件路径(也就是说,如果你像你一样使用file属性)到服务器上的html模板文件。所以你甚至可以在文档根目录之外包含文件,也就是说,如果你的服务器允许它(显然是Apache does not)。

<base>标记用于为浏览器的后续请求设置基本网址,例如图片网址和css文件。

作为旁注,也许你对HTML5 client side includes感兴趣。这是一种不同的方法,没有替代SSI,而browser support是非常差的atm。但有趣的阅读材料。 ;)