`

用shtml来include网页文件

    博客分类:
  • HTML
阅读更多
在网站构建过中。当我们遇到很多的内容为静态页面,而页首与页脚又经常要更换时,如果一直使用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""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>  <!--#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打开将被当作是文本文件。
分享到:
评论

相关推荐

    用shtml来include网页文件(开启SSI)

    因为批量修改起来很不方面,所以我们总希望能将页脚与页尾include到html文件中来。html属于客户端解析形的格式化语言,自4.0后几乎很难再有大的变动(毕竟很多浏览器只按4.0标准来解析),所以至今也没include这样的...

    shtml的include网页页面支持

    而html的框架(frame与iframe)虽然可以用来包含首页与页脚文件,但使 用frame与iframe的概念与动态页面(asp,jsp,php等)的include那样不同,frame与iframe的主体页面与被包括的页的 不是一个页面,而通过include的方式...

    Apache支持 shtml和include文件解析

    Apache对SHTML和Include文件解析的支持为开发者提供了强大的工具,使得静态网页可以包含动态内容,提高了开发效率和网站的灵活性。理解并正确配置这些特性,对于管理和维护复杂的网站至关重要。希望本文对您在配置...

    shtml include使用方法

    **SHTML Include 使用方法** SHTML (Server Side Includes) 是一种服务器端的脚本语言,主要用来实现网页的动态包含。这种技术允许开发者将网站中的一些公共部分,如页头、页尾、导航栏或者经常更新的内容,独立为...

    让Apache支持shtml实现include文件解析的配置方法

    在标题和描述中提到的配置方法主要是为了使Apache支持.shtml文件并实现include文件解析。以下是详细的步骤: 1. **加载include模块**: 首先,你需要确保Apache已经加载了include模块。在Apache的配置文件`httpd....

    1.本系统生成静态shtml文件!不过仅仅是后缀而已,其实生成的是静态的html页面,熟悉asp的朋友可以自己修改后缀!

    SHTML(Server Side Include HTML)是一种混合了静态HTML和服务器端脚本的文件格式,它允许开发者在HTML文件中嵌入服务器端的指令,例如包括其他文件、执行脚本等。然而,这里的描述表明,虽然文件的扩展名是.shtml...

    生成shtml新闻程序

    SHTML(Server Side Include HTML)是一种结合了服务器端脚本与HTML的文件格式,它允许开发者在HTML文件中嵌入服务器端的指令,从而实现动态内容的展示。下面我们将深入探讨"生成shtml新闻程序"这一主题,以及如何...

    SHTML 教程(什么是 SHTML,SHTML高级指令)

    3. **文件信息展示**:使用 `&lt;#flastmod&gt;` 和 `&lt;#fsize&gt;` 指令来显示文件的最后修改时间或文件大小,有助于用户了解文件的状态。 #### 五、服务器配置 不同的 Web 服务器可能有不同的 SSI 支持方式: 1. **Apache...

    html 中 #include file 的用法示例介绍

    然而,HTML本身并不支持直接的文件包含功能,因此需要使用服务器端包含(Server-Side Includes,简称SSI)技术来实现。SSI通过特定的指令将一个文件包含到另一个文件中。在HTML中,SSI指令可以使用注释标记&lt;!-- --&gt;...

    shtml生成的新闻网站

    2. 静态与动态的平衡:使用shtml生成的新闻网站结合了静态网页的高效性和动态网页的交互性。静态页面加载速度快,服务器压力小,而SSI指令则为页面增加了动态元素,比如实时日期、新闻更新等。 3. 文件结构与管理:...

    CSS,Shtml(xhtml)中文学习手册

    **CSS(层叠样式表)**是用于控制网页元素外观的一种样式语言,它与HTML或XHTML等...通过阅读这本手册,你将能够掌握如何有效地利用CSS来设计网页,以及如何利用SHTML实现动态网页的功能,从而提高你的Web开发能力。

    三种网页格式HTML、SHTML、ASPX比较.pdf

    SHTML(Server-Side Include HTML)是一种半静态的网页格式,它允许在HTML文件中嵌入服务器端脚本,如`&lt;!--#include file="..." --&gt;`,这种脚本会被服务器解析并在发送到浏览器之前进行预处理。通过这种方式,SHTML...

    shtml入门教程(超详细)

    2. **文件包含**:使用`&lt;#include&gt;`指令,可以将一个HTML文件的内容直接插入到另一个HTML文件中,这在构建大型网站时极为有用,可以减少重复代码,如统一的页眉和页脚。 3. **显示WEB文档信息**:例如文件最后修改...

    shtml网页SSI使用详解.pdf

    SSI(Server Side Include)是一种基于服务器的网页制作技术,通常称为"服务器端嵌入"或"服务器端包含"。它允许开发者在服务器端动态地生成网页内容,从而提高网站的灵活性和可维护性。 Config 命令 Config 命令...

    让Apache支持SHTML(SSI)的配置方法.docx

    --#include virtual="/header.shtml"--&gt;`来包含`header.shtml`。通过浏览器访问`index.shtml`,如果配置正确,你应该能看到`header.shtml`的内容被正确地插入到`index.shtml`中。 6. **分站点配置**: 如果你希望...

    生成SHTML企业网站

    SHTML(Server Side Include)是一种静态网页技术,它可以将一部分内容通过服务器端处理后插入到HTML页面中,使得网页在保持静态特性的同时,能够实现动态更新的效果。在生成SHTML企业网站时,我们通常会结合服务器...

    (.Net)编程之路全站程序shtml版_dotnet整站程序.rar

    "编程之路全站程序shtml版"可能是一个基于.NET框架开发的网站项目,它的特点是使用了SHTML(Server Side Include)技术。SHTML是一种结合了静态HTML和服务器端脚本的文件格式,允许开发者在HTML页面中嵌入动态内容。...

    CMSware之SHTML教程详解

    SHTML支持SSI(Server Side Include,服务器端包含)指令,使得开发者能够在网页中动态地插入文本、图片或其他文件内容。这种特性大大简化了网站维护的工作量,尤其是对于那些需要频繁更新内容的大型网站。 #### 二、...

    shtml与html的区别说明

    使用`&lt;#include&gt;`指令,你可以像这样在SHTML文件中插入其他文件: ```html &lt;!–#include file="info.htm"–&gt; ``` 这将把`info.htm`文件的内容嵌入到当前SHTML文件的指定位置。这种方式对于需要在多个页面共享相同...

Global site tag (gtag.js) - Google Analytics