首页 > 常识 > 互联网 > 网站制作 > 常见问题

用shtml来include调用文件(IIS、Apache中开启SSI)

作者:  时间:2016-08-02
描述:在网站构建过中。当我们遇见非常多的内容为静态页面,而页首和页脚又经常要更换时,如果一直使用html文件总会有非常多的麻烦。因为批量修改起来非常不方面,所以我们总希望能将页脚和页尾include到html文件中来。
《生活宝典shenghuobaodian.com》讯  在网站构建过中。当我们遇见非常多的内容为静态页面,而页首和页脚又经常要更换时,如果一直使用html文件总会有非常多的麻烦。因为批量修改起来非常不方面,所以我们总希望能将页脚和页尾include到html文件中来。
 
html属于客户端解析形的格式化语言,自4.0后几乎非常难再有大的变动(毕竟非常多浏览器只按4.0标准来解析),所以至今也没include这样的概念。
 
而html的框架(frame和iframe)虽然能用来包含首页和页脚文件,但使用frame和iframe的概念和动态页面(asp,jsp,php等)的include那样不同,frame和iframe的主体页面和被包括的页的不是个页面,而通过include的方式调用的页面主体页面和被包括的页面仍然是个页面,这样页面再加载的时就没速度的影响,更不会有多个窗口这样的问题。当然frame和iframe的作用还是挺大的,只是这和include这样包括页面进来的概念不同。
 
除frame和iframe之外,常用的调用文件的方法更有采用js。这和include概念倒是非常接近,但能需要客户端js的支持,而且修改也不非常方面,因为被包括的js是通过document.write来输出html代码,这样虽然能达到效果,可js毕竟执行客户端动态效果更好,比如目前较流行的AJAX。所以无论是frame/iframe还是js都和include不太相同(倒是Dreamweaver中的library和include非常像,可惜只能用在Dreamweaver中),而我们有时页面有非常多静态页面,内容不是动态的且没有规律可循,更不好做到数据库里去。如新浪的新闻之类的,这时我们能采用shtml的方式来做这些页面。--JarryLi in BeiJing
 
那什么是shtml呢?
 
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。
 
什么是SSI? 
 
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,能通过注释行调用的命令或指针。SSI具有 强大的功能,只要使用一条简单的SSI命令就能实现整个网站的内容更新,时间和日期的动态显示,及执行shell和CGI脚本程式等复杂的功能。 网站维护常常碰到的一个问题是,网站的结构已固定,却为了更新一点内容而不得不重做一大批网页。SSI提供了一种简单、有效的方法来解决这一问题,他将 一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程式按照模板自动生成网页,从而使管理大型网站变得容易。
 
怎么使你的Apache服务器支持SSI?
 
Apache(怎么在windows及linuc下安装apache请参见另两篇文章)默认是不支持SSI的,需要我们更改httpd.conf来进行设置。我这里以windows平台的Apache 2.0.x为例(在linux平台下和之相同),打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,找到:
 
# AddType text/html .shtml 
# AddOutputFilter INCLUDES .shtml
 
把这两行前面的#去掉。
 
然后搜索“Options Indexes FollowSymLinks” 
在搜索到的那一行后面添加“ Includes” 
即将该行改动为 Options Indexes FollowSymLinks Includes
 
熟悉apache manual的可能会觉得比较容易。
保存httpd.conf,重起apache即可
到此我们就完成了对Apache SSI的设置。
怎么让你的IIS服务器支持SSI
windows 2000:
IIS里添加一个应用程式扩展名映射
可执行文件:C:\WINDOWS\system32\inetsrv\ssinc.dll
扩展名:shtml/shtm
windows 2003 2003默认已支持SSI(shtml文件),只需在IIS的"Web服务扩展"里设置"在服务器端的包含文件"为"允许" 即可IIS6.0对于SSI进行了一些改进,以前IIS5.0的一些程式迁移过后可能无法运用。
一个经常的出现问题是出现如下错误:
"处理 SSI 文件时出错 - Error processing SSI file"
 
经过测试,以下做法会导致这个错误:
1、服务器物理路径使用中文名。
2、包含文件中使用中文名。
3、包含文件不存在。
4、被包含的文件再次包含使用中文名的文件。
 
该错误在Unicode编码时依旧,属于IIS的问题。
解决方法:对于使用SSI的站点物理和URL地址都全部使用英文。
shtml文件测试?
主体文件,比如命名为test.shtml,内容为(把head.html和foot.html文件包进来,和asp,jsp,php中的include相同)
 
<!--#i nclude file="head.html"--><hr><b>你好,这是中间的内容</b><hr><!--#i nclude file="foot.html"-->
 
页首文件,比如命名为head.html,内容为
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><div style="background-color:#00CC66;boder:1px groove orange ">我是页首导航栏的公共信息</div>
页尾文件,比如命名为foot.html,内容为
 
我是页尾版权信息</body></html>
 
然后运行web server,在地址栏中打开test.shtml文件,就会得到一个完整的页面,包括头和尾文件。
shtml中简单的SSI命令
SSI具有强大的功能,只要使用一条简单的SSI命令就能实现整个网站的内容更新,时间和日期的动态显示,及执行shell和CGI脚本程式等复杂的功能。比如我们修改上面提及的test.shtml文件,加入以下代码,将会显示服务器日期及客户端IP等:
 
<font color=red>  本文件名称: <br>  <!--#e cho var="DOCUMENT_NAME"--> <br>  时区:<br>  <!--#e cho var="DATE_LOCAL"--> <br>  你的IP地址是: <br>  <!--#e cho var="REMOTE_ADDR"--><br>  今天是:  <!--#c onfig timefmt="%A, %B %d, %Y"-->  <!--#e cho var="LAST_MODIFIED" -->  <br>  </font>
SSI指令基本格式: 
程式代码:
<!-? 指令名称="指令参数"> 
<!--#i nclude file="head.htm"--> 
说明: 
1.<!-- -->是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。 
2.#i nclude 为SSI指令之一。 
3.file 为include的参数, info.htm为参数值,在本指令中指将要包含的文件名。 
注意: 
1.<!--和#号间无空格,只有SSI指令和参数间存在空格。 
2.上面的标点="",一个也不能少。 
3.SSI指令是大小写敏感的,因此参数必须是小写才会起作用。
周详能查看SHTML周详教程 ,通过SHTML能减轻许多工作负担哦。
另外:shtml文件在网页服务器下运行才有效,直接用ie打开将被当作是文本文件。

从手机浏览器访问《生活宝典》

站内搜索
  • 网站是使用.shtml还是.html?
  • 如何提高IIS 6.0的安全性?
  • 什么是shtml SSI,它有什么用?
  • You don't have permission to access,,,
  • IIS 5.0建Web服务器
  • 用IIS搭建服务器方法与步骤
  • Apache面板登陆时提示 IP address has changed!
  • IIS 500 错误的解决方法
  • IIS 连接数
  • XP sp3安装IIS5.1方法与故障排除
  • 微商帮
    世界网站大全
    中国科研团队:大象的长鼻子是如何越变越长了
    中国科研团队:大象的长
    自己是否能够像自己想的那样做成一件事,身旁人的判断会比自己准确
    自己是否能够像自己想
    火宫殿:吃喝玩乐看,烧香拜神佛,红火的庙会经济
    火宫殿:吃喝玩乐看,烧香
    眼见为实也不为实,更须谨慎看到的并非全貌
    眼见为实也不为实,更须