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

lxf2023-03-28 21:39:01

更多: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是英语ServerSSI Side 服务器端包含了Includes的缩写,翻译成中文。从技术上讲,SSI是指在HTML文件中,可以通过注释行调用的命令或指针。SSI功能强大,只要使用简单的SSI命令,就可以实现整个网站的内容更新、时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂功能。网站维护中经常遇到的一个问题是,网站的结构已经固定,但为了更新一点内容,我们必须重做大量的网页。SSI为解决这个问题提供了一个简单有效的方法。它将一个网站的基本结构放在几个简单的HTML文件(模板)中。今后我们要做的就是把文本传输到服务器上,让程序根据模板自动生成网页,让大型网站的管理变得容易。

分为两个web服务器:
一:nginx
Nginx本身已经支持SSI,但默认情况下是不开启的,需要手动开启。
打开nginx配置文件nginx.conf,在http中加入以下三个字。

          
  1. ssi on;
  2. ssi_silent_errors on;
  3. ssi_types text/shtml;

ps:这里的文件类型可以改为其他类型,比如让htm支持ssi,然后把text/shtml改为text/htm。但是,在这种情况下,由于服务器中htm的文件较多,不一定所有其他页面都是用ssi引入的,这会给nginx造成一些不必要的消耗,因此不建议这样做。

如果需要添加默认主页,可以在nginx.在conf中找到Index选项,改为
          
  1. Index index.shtml index.html index.htm

保存重启nginx即可。

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

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

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

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