我选择MT的原因是因为MT可以动态发布整站,比WP等动态发布好多了,占用的CPU资源会少非常多,但是既然MT有动态发布的功能,今天也玩了一下。官方的教程在这里。
MT动态发布的设置挺简单的,在Templates页面的右边有一个Action,点击下面的use publishing profile,然后选择Dynamic Publishing ,此时我们网站的目录下就会多一个mtview.php文件,就是这个文件处理所有的请求。
然后进入IIS设置,选择blog所在的目录,比如blog在https://www.ezloo.com/blog/目录下,那就要右击blog目录,选择属性,然后选择自定义错误,找到404的页面,一共三个,点击编辑,消息类型选择URL,然后在URL框中填入 /blog/mtview.php,确定就OK了。如果你有几个博客,每个博客的目录都要进行设置,URL框中的内容也要相应改变。
动态发布之后,不需要重建,但是动态发布是非常耗资源的,刚刚测试了一下,如果没有开启dynamic cache的话,w3wp.exe这个进程消耗的CPU(CPU是酷睿2 4500)达到50%以上,开启dynamic cache以后,大概维持在8%-10%之间。启用dynamic cache功能在Preferences中的Publishing中实现,找到Enable dynamic cache,然后在前面打勾,保存一下就好了。对性能我没做多少测试,测试的博客就几个页面,如果页面多的话,访问量又大,消耗的CPU应该会更多。还有,如果没有开启的话,点击了一个链接之后要等几秒才能有反应。
注意:当我们整站都静态化之后,首页的index.html页面会变成index.html.static,这样的话,当我们左上角博客名字的时候,会提示找不到页面,那找到Header页面的第27行和第30行,把<$mt:BlogURL$> 改成 <$mt:BlogURL$>index.html就可以了。
既然MT能静态发布,那就使用静态发布吧,不要用动态。静态发布的时候不需要数据库,即使当时数据库有问题,大家还是可以访问你的页面,只是不能搜索和发留言而已。