静态html文件包含html的实现

AndyYang| 阅读:2820 发表时间:2015-03-15 22:55:39 apachehtmlnginx
摘要:对于静态网站有公共头尾需要包含,又不想用动态网页编写的。那该如何技术实现呢?

对于静态网站有公共头尾需要包含,又不想用动态网页编写的。那该如何技术实现呢?

方法有三:
1、IFrame, 这个可能是大家最熟悉的 <iframe name="neepage" marginwidth="0" marginheight="0" src="import.htm" width="100%" height="30"></iframe> 加上它的一些属性可以实现一些透明,无滚动条等具体的效果。以及他的兄弟:Frameset 等。
2、JS实现,通过加载js的形式,把html加载进来,一般广告采取这种形式。
3、shtml。使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。

相对前两者,shtml是最佳选择了。shtml可以包含指定文件到文档中如同PHP中的include功能类似。但是如果需要用到shtml,就需要服务器支持SSI。

SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。网站维护常常碰到的一个问题是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。SSI提供了一种简单、有效的方法来解决这一问题,它将一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。

分两个web服务器来讲吧:
一:nginx
Nginx本身已经支持了SSI,但默认是不开启的,需要手动开启。
打开Nginx配置文件nginx.conf,在http里加入以下三句话。

ssi on;
ssi_silent_errors on;
ssi_types text/shtml;

ps:这里文件类型可以改成其他的,比如让htm也支持ssi,那么把text/shtml改成text/htm就行了,但是这样的话,由于服务器里htm的文件较多,也不一定全都用ssi引入其他页面,会给nginx造成一些不必要的消耗,所以不建议这么做。

如果需要添加默认首页,可以在nginx.conf里找到Index选项,改成
Index index.shtml index.html index.htm

保存重启nginx即可。

二:apache
Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

把这两行前面的#去掉 。
接着搜索"Options Indexes FollowSymLinks"
修改为:"Options Indexes FollowSymLinks Includes"

确认加载include.so模块,将注释去掉:
LoadModule include_module libexec/apache2/mod_include.so
保存httpd.conf,重起apache即可

加载只需要用到include,用法:
Virtual:给出到服务器端某个文档的虚拟路径。例如:<!--#include virtual="/includes/header.shtml" -->
File:给出到当前目录的相对路径,其中不能使用"../",也不能使用绝对路径。例如:<!--#include file="header.shtml" -->

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有0条评论

昵称:
邮箱:

  • 最新评论

iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号