首页 > 教程 > 关键词  > 正文

用shtml来include网页文件

2007-04-19 10:08 · 稿源:天极yesky

  在网站构建过中。当我们遇到很多的内容为静态页面,而页首与页脚又经常要更换时,如果一直使用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相同)

  以下是引用片段:

<!--#include file="head.html"--><hr><b>你好,这是中间的内容</b><hr><!--#include file="foot.html"-->

  页首文件,比如命名为head.html,内容为

  以下是引用片段:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""https://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> <!--#echovar="DOCUMENT_NAME"--> <br> 时区:<br> <!--#echovar="DATE_LOCAL"--> <br> 你的IP地址是: <br> <!--#echovar="REMOTE_ADDR"--><br> 今天是: <!--#config timefmt="%A, %B %d, %Y"--> <!--#echovar="LAST_MODIFIED" --> <br> </font>

  SSI指令基本格式

  程序代码:

以下是引用片段:
<!-– 指令名称="指令参数">
<!--#include file="head.htm"-->

  说明:

  1.<!-- -->是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。

  2.#include 为SSI指令之一。

  3.file 为include的参数, info.htm为参数值,在本指令中指将要包含的文档名。

  注意:

  1.<!--与#号间无空格,只有SSI指令与参数间存在空格。

  2.上面的标点="",一个也不能少。

  3.SSI指令是大小写敏感的,因此参数必须是小写才会起作用。详细可以查看SHTML详细教程 ,通过SHTML可以减轻许多工作负担哦。另外:shtml文件在网页服务器下运行才有效,直接用ie打开将被当作是文本文件。

  • 相关推荐
  • 大家在看
  • 新思科技:数字时代,半导体行业更需要建立命运共同体

    5G、人工智能、连网技术、新能源等底层技术的不断成熟驱动下游应用的电动化、智能化不断发展,从而持续推动全球半导体行业稳步增长。预计至2025年,全球半导体行业市场规模将达6300亿美元。伴随着技术的进步,消费电子、通讯、汽车、工业等各领域将迎来行业转型,进一步扩大对半导体的总需求量。伴随着数字化转型和“双碳”目标的确立,以及疫情常态化、半导体行业进入后摩尔时代,这一系列变化将对半导体行业带来哪些变革?当前产?

  • 你安心奔赴人生“大考”全季酒店全心保驾护航

    11月下旬到12月中旬可以称作“考试季”,许多人一年一度的梦想种子都即将发芽。国家公务员考试、研究生考试陆续开考。考试期间,不少考生会选择在考点附近的酒店下榻。这也意味着每一场考试同时也是酒店业面临的一场“大考”, 以华住集团旗下中档连锁品牌全季酒店为例,它是如何全力以赴为考生保驾护航的呢?数字化驱动自助入住机30秒只为你“抢速度”身份信息核验、房卡制作、公安系统登记……多个繁琐步骤,这些都是传统酒店在办

  • 中国联通助力数字政府建设系列成果亮相 首届数字政府建设峰会

    11月26日至27日,2021(第十六届)中国电子政务论坛暨首届数字政府建设峰会在广州举办。中国联通董事长刘烈宏出席大会开幕式,并在高峰论坛上作题为《筑算网之基 聚数智之核 开启数字化发展新征程》的演讲。中国联通积极参与大会各项活动,在确保本次大会通信畅通与网络安全的同时,集中展示了助力广东省数字政府省域治理“一网统管”六大专题成果,以及医疗、工业、文旅系列产业平台。同时,重磅发布了“中国联通智慧数享大数据平

  • 再也不怕信号弱!华为公布车辆定位方法专利

    11月27日消息,据媒体报道,华为技术有限公司申请公布一种车辆定位方法及装置”专利,可实现弱信号空间内准确定位,专利的申请日期为2020年5月21日。专利摘要显示,该方法包括:在车辆进入半封闭空间后,监测车辆是否位于定位系统的预设范围内,根据地图中预设系统的位置信息对车辆进行定位。该专利可实现车辆在信号较弱的隧道、停车场等空间的准确定位,提升车辆在信号不佳的空间中定位的鲁棒性。值得注意的是,自进入2021年以来?

  • 中芯国际重申高管变动情况:梁孟松专注联席CEO 蒋尚义担任顾问

    11月26日,中芯国际发布了投资者活动会议记录表,再次提到了前不久的中芯国际重大人事变动,当时有4名董事辞职,但梁孟松将继续专注于联合CEO的职责,蒋尚义博士也会继续担任公司顾问。代理董事长、执行董事兼首席财务官高永岗博士在活动中表示,正如我们公告的内容,我们有4位董事提出了辞任,我们尊重辞任董事的意见。在此,感谢他们为中芯国际的发展做出的贡献。高永岗表示,梁孟松博士将专注于公司的联合首席执行官职责,蒋尚?

  • 黑五美国商店顾客大减:电子产品缺货严重

    11月27日消息,据央视财经频道报道,美国黑色星期五”购物促销季已经拉开帷幕。当天,美国多家大型购物中心在凌晨5点就提前开门迎客。但据报道,今年前来实体店进行抢购的人数比往年少了许多。在疫情仍未得到有效控制的情况下,更多美国人选择在网上购物”。由于全球供应链短缺,今年购物促销季的一些热门商品,尤其是电子产品缺货严重,如电动滑板车、笔记本电脑和耳机等。视频有业内人士指出,今年感恩节购物季全美各地零售店普?

  • 一家俄罗斯软件公司称他们有方案可以取代微软Exchange服务器

    由于地缘政治局势和政府授权,软件世界正变得越来越分散,为其他公司填补通常的软件巨头的角色提供了机会。RuPost就是这种情况,它声称是俄罗斯市场上微软ExchangeSever的1:1替代品。RuPost是由Astra公司集团开发的,其声称完全实现了微软Exchange服务器的功能。该解决方案提供邮件、日历、联系人和地址簿搜索,还提供迁移工具和模板,让公司轻松从Exchange转移到RuPost。"首先,我们专注于解决拥有大规模基础设施的组织所面临的问

  • 手游“梦幻水果”突然下线:玩家充值“打水漂”

    近日,据媒体报道,不少游戏玩家的投诉称,一款名为梦幻水果”的手游从11月10日左右,突然间无法登录,之前没有任何预兆,同时充值资金也打了水漂”。目前,梦幻水果”这款游戏在手机应用商城上,已经无法下载,只能在第三方网站上下载,但是,下载过后却显示网络不可用”,根本无法登录。据玩家们的介绍,这款游戏在充值之后,如果游戏打赢了,便可以获得相应的金币,金币可以通过微信和支付宝进行提现,这让不少玩家相信自己可以

  • 至臻合作,爱游戏携手国际米兰,开拓大数据体育时代

    近日,一则跨界合作消息在足坛引起热议,爱游戏与国际米兰官宣合作,爱游戏将作为国际米兰官方合作伙伴正式参与其品牌事务,双方将基于互助互信、合作共赢的理念,开启为期三个赛季的系列品牌合作之旅,并为彼此品牌影响力的升级持续赋能。目前双方没有透露更详尽的合作计划,但是消息一经放出就引起了双方粉丝的关注,在目前的疫情形势下,能够一次性达成长达三年的合作实属不易,也说明了双方对彼此的深度认同。国际米兰足球俱乐

  • 你的世界我不懂?珍爱网红娘劝诫年轻人不要盲目付出

    近期,B站自制恋爱综艺《90婚介所》中关于90后交友婚恋观话题,引发不少年轻人热议。节目中女嘉宾围绕付出与给予,带来了自己的故事,也提出了自己的疑问。不让感情贬值,从看见自己开始“比起感情上的你追我赶,更期待遇见一个慢节奏的你,笨拙地与我一起走过生活的点点滴滴。”付出型女嘉宾钱女士,曾经为男友努力改变自己,事无巨细地照顾他生活的点点滴滴,却换来一句“在你身边,很累”。那么,在一段感情里,习惯性付出到底?

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天