这在网页中经常使用。一些常用内容可以集中在一个页面文件中,其他使用这些内容的页面只需要包含(引用)这个常用文件即可。这很容易维护。如果网页较多,需要修改共同内容时,只能修改一个文件,不需要单独修改每个文件。
最典型的应用,比如页脚的版权信息,可以放在一个名为footer.html的文件中,然后其他页面文件可以在页面内容的末尾包含这个文件。具体例子如下。
嵌套html文件最简单的方法是使用SSI(服务器端包含)技术,即在服务器端合并两个文件。除了少数免费的虚拟主机服务,几乎所有的虚拟主机服务器都支持SSI。这也是一个推荐的方法,与ASP和ASP.NET网页中使用的语法完全相同。如果站长更喜欢用PHP或者JSP,语法会略有不同。
对于无法使用SSI、ASP、ASP.NET、PHP、JSP等服务器端动态页面语言的情况,这里也将介绍两种客户端嵌入的方法,JavaScript和iframe。当这两种客户端方法有很大的缺点时,一般不推荐使用。
下面分别详细介绍这几种方法。
1、SSI(服务器端包含)
SSI是一种简单的动态网页制作技术,但是shtml服务器需要网页文件扩展名来识别文件中的SSI命令。所以如果你的SSI命令好像不管用,先别放弃。尝试将文件扩展名更改为。shtml,你可能会成功。如果您知道您的服务器是否支持SSI,请阅读另一篇文章。
使用SSI的一个限制是,页面必须放在web服务器上才能看到效果,这不容易在本地调试。当然,如果你必须在本地调试,只需在本地安装一个Apache服务器。
例如,您想在每个网页的底部添加相同的版权信息,如
&复制;版权所有2009程序员实验室。
你可以把这一行信息放在一个叫footer.html的文件里。footer.html的内容是:
&复制;程序员实验室保留所有权利;
所以同一路径下的其他页面文件应该包含footer.html的SSI命令:
(常见)
或者
这两者几乎是一样的,不同的是在include virtual之后采取URL形式的路径,你甚至可以执行一个CGI程序并包含它的输出结果,如果你的服务器支持CGI的话。include文件后跟文件系统路径,CGI程序无法执行。两者都可以接受相对路径,所以对于上面这个简单的例子,两者的效果是一样的。如果不知道URL路径和文件系统路径的区别,请使用include virtual。
有关SSI的更多信息,请参见这篇SSI介绍文章。
2、PHP
如果您的服务器支持PHP,在PHP中引用footer.html文件的方法如下: