文章来源:
http://down.chinaz.com/server/201106/695_1.htm
现在基本各种主流CMS在生成静态文件时,都提供实现自定义扩展名的功能,其中就有生成.shtml的。那么SHTML究竟是什么?有哪些特点?CMS中网页生成SHTML有哪些优势?
1. 什么是SHTML? SHTML有哪些特点
SHTML实际是支持SSI指令的静态HTML文本。SSI英文为Server Side Include,中文意即服务器端包含。通过SSI指令可以通过注释行调用命令或指针,可以在静态文本中直接包含其它静态文件,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。
SHTML的特点:
目前,主要有以下几种用用途:
显示服务器端环境变量<#echo>
将文本内容直接插入到文档中<#include>
显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
高级SSI<XSSI>可设置变量使用if条件语句。
SHTML静态文件在发送到浏览器之前服务器首先会对其中的SSI命令进行处理,把所包含的文件以静态HTML的形式整合到SHTML文件中来后再输出。被包含的HTML文件如果有更新,网站静态SHTML页面中的内容会自动更新显示。可以使用一些SSI指令直接显示一些内容,如客户端IP,当时时间等,及执行一些程序等。
2. CMS中网页生成SHTML有哪些优势?
在CMS生成静态文件是使用.shtml扩展名的最大的优势是可以直接在生成的静态文件中动态的包含其它需要经常更新的内容或者公共内容,公共内容更新后,静态文件无需重新生成,内容即自动 更新。
如内容页侧边栏调用最新文章列表、推荐文章等,如果内容页生成静态,后面这些列表无法自动更新,非得手动全站生成,这样是非常麻烦的,如果使用生成.shtml的方式,那么把介边栏的文章列表生成单独的html文件,然后在.shtml中以ssi指令引用(<!--#include file="sidebar.html"-->),只有在文章有更新时,让侧边栏的列表文章静态文件如sidebar.html自动生成一下静态,全站内容页的侧边栏内容都自动跟着更新了。
如果CMS程序设计的好,在程序中做些判断,让以.shtml生成的页面,能够方便自定义一个html块来调用动态内容,这样会非常方便,不用每次更新内容页的一小点内容就需要全站生成。这一点,PHPCMS中的碎片功能设计的是非常不错的,PHPCMS中的碎片功能,可以方便在页面上自定义区域手动添加推荐内容,如果页面开启生成.shtml的功能,那么碎片自动以HTML静态文件的方式存储,然后以SSI指令包含到页面中,这样以后更改碎片中的内容时,无需全站页面重新生成,内容即自动更新。
更深度点的做法时,新建一个单页面,去掉头部和尾部,使用PHPCMS的标签如GET标签调用文章数据,然后生成静态,使用SSI指令包含在到模板中,生成静态后,以后每次添加新文章后,把单页面生成一下静态,整站通过SSI指令引用这个单页面的地方都自动更新。
3. 服务器如何开启SHTML?
1) 在IIS里添加一个应用程序扩展名映射:
在IIS网站属性=》》主目录=》》配置=》》应用程序配置界面=》》添加=》》添加/编辑应用程序扩展名映射=》浏览选择C:\WINDOWS\system32\inetsrv\ssinc.dll,扩展名填写.shtml,点选限制为GET,POST确定即可。
2) 在开启“在服务器端的包含文件”的扩展:IIS=》》WEB服务器扩展=》》“在服务器端包含文件”=》》允许
3)Apache则是根据你的设置情况而定,修改srm.conf如:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Options Indexes FollowSymLinks includes4)nginx 也有内置的SSI 模块 ngx_http_ssi_module,修改配置文件开启
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;4. SHTML的语法规则是什么?
CMS中生成静态采用.shtml时,使用最多的SSI指含某过于HTML文件包含指令,语法规则如下:
<!--#include file="sidebar.html"--> sidebar.html可改为任何需要被引用的HTML文件,不能是网址,可以是相对路径。使用该SSI指含包含静态文件后,以后只需更新静态文件里面的内容,全站引用该文件的地方都会跟着更新,无需生成。
如果<!--#include file="abc.php"-->包含的是PHP文件,那么,输出的不会是PHP文件执行的结果,而是PHP文件本身的内容。
分享到:
相关推荐
3、在程序对话框中配置数据库连接信息(或点“选择配置文件”,选中Config/ConnectionStrings.config文件可自动读出数据库链接信息); 4、点击[智能升级]即可完成数据库升级; 5、升级完成后,请时将同一版本的程序...
3、在程序对话框中配置数据库连接信息(或点“选择配置文件”,选中Config/ConnectionStrings.config文件可自动读出数据库链接信息); 4、点击[智能升级]即可完成数据库升级; 5、升级完成后,请时将同一版本的程序...
3.0.2-final-src,在src文件夹下会看到有三个压缩文件,如果只想进行普通的二次开发,可以只导入cms这个源码,删除jeecms-cms-identity-3.0.2-final.jar即可,如果想进行深入的二次开发,需要导入common和core源码,...
CMS4J绝非国外一些开源产品的改造版,我们秉承用户本土化的原则,切身体验国内CMS系统的应用现状与实际需求,为中小企业量身定做,CMS4J项目在立项时,就已经立下了以下四大目标: [目标 1]: 不编程,做动态...
以上是对CMS4J系统使用教程中几个核心功能的详细介绍。这些功能为网站管理员提供了强大的工具来管理和维护网站内容,从而提高用户体验并增强网站的功能性。通过合理配置这些选项,可以有效地管理和优化网站的各种...
在描述中提到的"带后台",意味着这套源码包含了一个内容管理系统(CMS),使管理员能够方便地更新和管理网站内容,如发布文章、更新诊疗信息、安排在线咨询时间等。"带手机端"则表示源码已考虑到移动设备用户的体验...
它的出现不仅改进了语言本身的功能,还提升了其在开发大型Web项目中的应用能力。 - **对象模型的革新:** PHP5引入了全新的对象模型,这使得PHP成为了更加强大的面向对象编程语言之一,能够更好地支持复杂的应用程序...