常见的静态页面扩展名有 .htm .html .shtml
而提到 ssi ,会很自然的想到 shtml,网上也有很多资料把SSI和shtml联系了起来
我认为 : ssi是服务器的一种扩展功能,他弥补了普通静态页面不能include的劣势,不同的服务器对这个功能 的实现也不一样
以下是常见的一些服务器对SSI的支持情况对比。
服务器 |
文件扩展名 |
备注 |
IIS |
shtml |
|
apache |
任意配置 |
|
nginx | 任意配置 | 据说该服务器的这个组件有bug |
resin |
任意配置 |
该实现Java做的,可能效率不如前2者高 |
(默认情况下,所有服务器均不支持SSI,需手工打开本功能)
tomcat weblogic等服务器也支持该功能,但我没有用过这个功能,就不列出了
静态发布系统为了便于系统的维护,同时简化系统的复杂度,往往把页面发布成一个个的小碎片,通过模板把这些碎片组装起来,用户看到页面时,就像一个页面似的。而这个组装碎片的工具就是SSI。
对于服务器配置,笔者建议采用如下方式
仅对shtml添加SSI支持,其它文件一律不支持
对于发布的静态页面,由于里面肯定有include,所以使用跨服务器的名字shtml ,如果是CMS产品的话,可能客户使用的环境是IIS,如果选用其它名的话,它支持不了。
对于客户自己上传的非发布文件,里面没有include的话,建议其使用html,这样服务器在响应该页面请示时,就不再解析该页面的内容是否include,节省系统资源,提高响应速度。当然,这样做效果可能是很小的,但勿以善小而不为。
那是不是shtml就会占用的资源多,速度慢呢?理论上是,但一般的门户都在webserver前放有squid,从而缓解了服务器的压力,而squid缓存的已经是整个页面的内容,它也不涉及到SSI的问题。因此这个问题不会很大。