>  기사  >  웹 프론트엔드  >  静态html文件包含html的实现_html/css_WEB-ITnose

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

WBOY
WBOY원래의
2016-06-24 11:48:121361검색

更多: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:给出到当前目录的相对路径,其中不能使用"../",也不能使用绝对路径。例如:

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.