|
知识,每天盯紧收获

- 帖子
- 2731
- 主题
- 0
- 精华
- 7
- 可用积分
- 9623
- 专家积分
- 50
- 来自
- 福州
- 在线时间
- 1489 小时
- 注册时间
- 2006-01-06
- 最后登录
- 2010-02-08
状态:...保密...
[博客]
[短信]
|
最近站点大量应用了静态页面生成,于是一直在钻研SSI页面包含的问题,发现在对httpd.conf的SSI设置进行变更:
- ....
- <Directory />
- Options Indexes FollowSymLinks Includes
- AllowOverride None
- AddOutputFilter Includes .php
- </Directory>
- ......
复制代码
注意以上的配置中增加了“AddOutputFilter Includes .php”后,所有的.php程序将支持SSI语句,随即做了个简单测试,首先建立俩文件
文件一
inc.shtml(内容如下:)
- <DIV>这是被包含的内容!</DIV></ BR>
复制代码
文件二
test.php
- <!--#include virtual="inc.shtml" -->
- <?php
- echo '<!--#include virtual="inc.shtml" -->'
- ?>
复制代码
当执行完test.php后屏幕输出了两行
这是被包含的内容!
这是被包含的内容!
由此可见,在PHP中执行SSI语句是可行的!
几乎所有大型的门户网站的新闻系统中应用到SSI的静态包含技术,如:sohu、163、sina...以.shtml结尾的新闻正文。他的好处就在于网站生成静态页面后做到布局变动统一一致的效果,而传统生成.html的静态文件时确无法包含其它文件(如:网站的头尾文件),造成一次生成,“万古不变”的呆板页面。(请注意,这里说的是布局的变动,而不是改改CSS这么简单的事)
于是应用SSI技术就能很好地解决以下问题:
一、页面高度一致性,由于适用于动静两种页面的复合包含,因此在公共页面布局更新的同时可以保持全站页面风格一致。
二、静态包含的高效性,特别是在多重包含下(如:a.shtml包含b.shtml,b.shtml又包含c.shtml..),仍然非常接近纯静态页面的性能,这点要比模板包含乃至页面缓存的效率都高出许多。在此强烈要求在一般情况下替代模板的include功能。
三、静态包含对搜索引擎的亲和力强,在搜索引擎中.shtml和其它静态文件享受相同待遇
四、相对意义上减轻了程序员与美工之间模板拆分的问题,美工不用再做两套模板(如:一套用作smarty包含,一套用作静态文件包含),一套模板无论动静皆大欢喜,美工随意拆分页面的同时还能降低引起模板系统错误的可能性。
欢迎拍砖!
[ 本帖最后由 bs 于 2007-2-26 20:09 编辑 ] |
|