Home  >  Article  >  Web Front-end  >  静态html文件包含html的实现_html/css_WEB-ITnose

静态html文件包含html的实现_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:48:121361browse

更多:http://www.webyang.net/Html/web/article_139.html


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

方法有三:
1、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里加入以下三句话。

          <ol>              <li>ssi on;</li>              <li>ssi_silent_errors on;</li>              <li>ssi_types text/shtml;</li>          </ol>

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

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

保存重启nginx即可。

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

          <ol>              <li>#AddType text/html .shtml</li>              <li>#AddOutputFilter INCLUDES .shtml</li>          </ol>

把这两行前面的#去掉 。
接着搜索"Options Indexes FollowSymLinks"
修改为:"Options Indexes FollowSymLinks Includes"
保存httpd.conf,重起apache即可

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn