登录 注册

登录

问题 推荐一个1.5的文章真正静态化插件

更多
2008年09月27日 13:26 #1 作者: 南荒
Content static,一个文章的静态化插件,不是SEF组件的伪静态,而是真正意义的静态,可以大大提高你的网站访问速度,所以的文件将以HTML形式存在你的目录里,
1.joomla的SEF模式即搜索引擎友好链接必须开启,然后就是URL后缀必须选择是.
2.安装插件,然后在插件管理里面发布它.就OK了,
就这么简单!我昨天试了一下,效果相当的好.你们可以去官方网站去下载,
如果怕麻烦的,也可以给我留信箱,我EMAIL给你们.

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月27日 13:59 #2 作者: 马腾化
一个插件就真正html?

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月27日 15:31 #3 作者: tiger
测试过了,但是应该不是真正的html,因为我在我的目录里没找到生成的html文件!但是看着确实不错,呵呵!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月27日 16:33 #4 作者: Joomla之门
我跟作者联系过,他自己也说“不是生成 html 文件保存在目录里面” —— 这是一、两个月之前的事了,如果他最近做过改进我就不知道了。

我觉得最好的解决办法是:安装 sh404SEF 来解决 SEF URL 问题;然后安装一个“定时转储 HTML” 插件来生成静态文件。例如,每天凌晨 3 点自动将前一天的所有新增及更新页面转储为真正的 HTML 文件保存在网站的某个目录里面,这样才是真正静态。

不过,对于每天都有大量内容更新的网站我认为这不是个好主意:例如论坛的话题,一旦有人回复就是更新了内容,这样就要重新生成 HTML 文件。数量多了,岂不是从一种动态变成另一种动态?一样很累。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月27日 16:37 - 2008年09月27日 16:56 #5 作者: 南荒
呵呵,昨天我试过,然后从生成的目录用FTP下载下来,确实是静态文件,这是插件十天前刚刚更新过,只不过如果开了SH404SEF没有用,我也试了.只有只开启JOOMLA1.5自带的SEF,然后再选择HTML后缀,才可以. http://www.XXXX.com/component/content/article/35-modules/65-moludincontent.html ,就能找到对应的HTML的,就是有一个缺点,如果我重新编辑了该文章,我必须把对应的HTML删掉,然后前台才会更新,否则还是老的.

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留
最后修改: 2008年09月27日 16:56 由 huhua.

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月27日 17:21 #6 作者: Joomla之门
看来不能自动对更新过的内容重新生成 HTML,那岂不是累死!

其实我两个月前就关注过这个插件,试用后感觉不满意,就没有向大家推荐。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月27日 17:46 #7 作者: 南荒
呵呵是的,如果文章发布以后不需要修改那还好,如果一旦需要修改,就必须删掉,因为这个插件可能的工作机制估计是先确认这个URL是否存在,如果不存在,就生成一份,如果存在就维持原状,如果再加一条指令进行识别旧有文章的修 改就更好了,呵呵,一般情况下,文章发布后,是不需要修改的.而且这个插件对针对JOOMLA的文章,如果能何SH404SEF结合起来,识别更多的组件,就更完美了.

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月28日 09:52 #8 作者: tiger
仔细看了一下,我装了这个插件,根本没起作用!1.5.7版本的!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年09月28日 11:42 #9 作者: 南荒
我也是joomla1.57的,有用的啊.呵呵,我是试了,觉得好用,可能适合部分人,才来发贴的

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年10月22日 00:17 #10 作者: anycall
joomla 静态化外挂元件
joomla搜索引擎优化一直以来都是伪静态,每次访问文章都必须调用数据库,这样就降低了访问速度,而joomla的content static可以将文章以HTML的形式存于根目录里,当然如果你的网站内容太多,而且你的网站空间小的可怜,就不要考虑这些了.据说,真正静态化的网站更有利于搜索引擎的抓取.所以如果你不是太担心你的网站空间,你大可以去试试,不但提高你的网站速度,而且也许也利于搜索引擎的抓取.不过安装插件后,必须开启JOOMLA的SEF模式,而且URL后缀选项也必须选择.因为要求后缀是HTML,然后再去插件管理里发布你的插件.还有,你的网站所在根目录必须是可写的,一般没有这样的问题.这个插件只适用于joomla1.5

说明: 不所要修改Joomla内部任何文件!只需要安装此1.91KB大小的元件!即可网站真正能静态化!!

http://www.hkemax.com/viewthread.php?ti ... &frombbs=1

登录 或者   注册一个会员帐号 来参与讨论

更多
更多
2008年10月30日 16:07 #12 作者: shiliu
有使用中 content static 的web 站点,看看,研究一下吗

专业joomla/mambo wordpress 建站.熟悉各种组件,能按需定制,因您而变. blog.linizou.com QQ:714905923

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年10月30日 16:53 #13 作者: 南荒
去一个我已经弃之不用,仅仅作为测试的网站看看吧, www.5axuexi.cn这个就是用了这款静态化插件

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年10月30日 20:16 #14 作者: ufonba
官方说明:
The plugin is not workable under windows. Since Joomla urls contains 'index.php' in urls. The system renders an index.php file, therefore the plugin cannot create a directory with name 'index.php'.
这个插件要网站的URL没有index.php才行,也就是说你的URL不能是http://www.XXXX.com/index.php/XXXX.html
这样是没有效果的.换个角度说,你的网站要么就支持REWRITE,要么就要用某些SEF组件使其为其它形式,例如:http://www.XXXX.com/index.php?XXXX.html
使用这个组件理论上应该会快点,减少对数据库的负荷,提高搜索引擎的搜索速度,提高网站反应速度.
缺点也非常明确,就是失去了几乎所有动态网站所具有的优点.

这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。
文件附件:

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年12月05日 18:33 #15 作者: lhping
没有,官方网站 ,掉线了! 谁方便 发一给我 , 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。

joomla,zen-cart,shopex,ecshop 模板原创设计,QQ:372982800,
文件附件:

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年12月06日 21:42 #16 作者: Joomla之门
既然大家这么喜欢这个插件,刚才我就将它汉化了。

下载 Content Static for Joomla! 1.5 静态页面输出插件 1.0.1 中文版

我顺便也对这个插件进行了测试。

测试平台:XAMPP for Windows 服务器,Joomla! 1.5.8 中文集成版(安装在 htdocs\158 目录下),已开启内置 SEF(在上面 ufonba 的帖子中已经说明 Win 平台下不开启 SEF 此插件就无法工作)。

Content Static 插件后台只有一个参数,就是指定 Joomla 的安装目录。我尝试了“不填写”、“/158”、“158”三种情况,都没有任何区别。当我在前台访问页面时,都看到如下的错误提示:
 
Warning: mkdir() [function.mkdir]: No such file or directory in D:\xampp\htdocs\158\plugins\system\contentstatic.php on line 70
 
Warning: fopen(/158\/158/index.php?option=com_content&view=article&id=24:content-layouts&catid=29:the-cms&Itemid=38\index.html) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\158\plugins\system\contentstatic.php on line 89
 
Warning: fwrite(): supplied argument is not a valid stream resource in D:\xampp\htdocs\158\plugins\system\contentstatic.php on line 90
 
Warning: fclose(): supplied argument is not a valid stream resource in D:\xampp\htdocs\158\plugins\system\contentstatic.php on line 91
 

请看附图。这是我访问 http://localhost/158/latest/welcome-to-joomla.html 这个页面时的情形,错误消息在页面顶部,为了大家看得清楚,我手动选择了错误消息使之高亮显示。

请高手指点一下这是为什么?

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年12月07日 01:10 - 2008年12月07日 01:45 #17 作者: 南荒
因为该作者说该插件在操作系统windows下无法正常工作,因为里面的函数fopen无法在windows下载创建文件,linux下再测试应该没有问题

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年12月07日 09:34 #18 作者: joeguo
关于这个插件,大家已经讨论的差不多了,我汇总一下,然后添加一下个人的理解。
当时开发这个插件,主要是由于我用的国外的共享服务器,共享服务器对于CPU和内存共享上都有比较苛刻的限制,
而Joomla在安装了比较多的Plugins和Modules之后,可能要访问十多次甚至更多次数的数据库。即便是很多Plugin和Module所取的数据相同,也不能共享数据,都要去数据库里面取一次(Joomla机制所致,方便的扩展,但数据却是不能共享,只能自己取自己的数据,如果数据可以共享,又可能导致安全方面的问题)。
虽然Joomla Cache可以解决问题,但是每次请求还是要执行不少的Php代码,当时就想能否将之存为静态页面,使得以后用户来取的时候,使得服务器直接将之作为静态页面返回给用户。

做法很简单,就是按照请求路径,在服务器端生成相应的html文件。使得下次同样的请求,apache服务器可以直接定位到这个html文件,而不用调用mod_rewrite,再重新调用index.php文件。

下面解释一下插件的几个局限性:
1.为什么Url必须以html来结尾。
Apache返回给浏览器中的每一个文件都包含一个Header叫Type,从而浏览器知道如何解析这个文件。
而Apache内部定义了根据文件后缀来生成这个Type Header信息,如果想让浏览器正确的显示页面,这个Type Header 必须是 text/html。如果url是以html为后缀,Apache就自动将文件的type定义成text/html类型,如果url没有任何后缀,Apache就将Type定义为text/plain。我不知道如何让Apache将文件类型自动定义为text/html,只好要求url以html为结尾。
如果不以html为结尾,浏览器会直接显示html的source code.
更多细节:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
2.为什么Windows下不好用。
Windows下面不支持url rewrite,使得url像下面:
http://www.xxx.com/index.php/hello/word.html
如果想让IIS服务器直接定位到word.html,就必须在Joomla根目录下生成下面结构的目录和文件
index.php/hello/word.html

其中index.php是目录,而我们知道在Joomla根目录下已经存在了index.php文件。
我们没有办法生成一个同名字的文件和目录。

3.为什么要手动清除文件。
程序可以每次生成文件后,将生成文件的路径记录到数据库中,同时记录一下时间戳,定时或者一次更新所有时间过期的文件。如此做跟cache就没有什么本质的差别,并且还每次更增加了1次数据库的访问。
所以就没有添加这个功能。
4.不能跟comments,hits,vote等动态功能并存。
这是这个插件的弱点,没有办法。
当然这也不是一个不可能问题,只是需要用ajax去调用,然后动态显示这些内容,不但要考虑修改原来的com_content还要考虑可能的其它可能的插件组件,这样搞太复杂,可能效率还不如不静态化的好。
对于不需要动态功能的,这个插件才有作用。


用content static的最大目的,就是利用joomla的发布功能和模版功能,来发布静态文章。

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年12月07日 10:10 #19 作者: 南荒
本地测试,apache在windows下,URL rewrite一切良好,不能创建不是URL的原因,主要是因为fopen,在windows下新建文件的路径与在linux下不同,
以下是PHP手册的范例,可以作为比较
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen(" www.example.com/ ", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?> 



如果在用服务器模块版本的 PHP 时在打开和写入文件上遇到问题,记住要确保所使用的文件是服务器进程所能够访问的。

在 Windows 平台上,要小心转义文件路径中的每个反斜线,或者用斜线。


<?php
$handle = fopen("c:\\data\\info.txt", "r");
?> 

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年12月07日 11:14 #20 作者: joeguo
关于路径,我采用的是Joomla 自己定义的DS,
应该不会存在转义字符的问题。我也搭建一个Windows环境测试一下。

另外补充几个问题:
1.跟其它Sef插件的兼容性。我自己的网站是用smartsef,跟content static没有兼容性问题。从理论上讲,任何SEF插件都不会跟Content static有兼容性问题,这是由于Cotent static是在所有内容返回给浏览器之前生成的文件,下次再访问,服务器就直接将该文件直接返回给浏览器,省却了中间生成的过程。但需要注意的是,必须让Content static作为Joomla调用的最后一个插件,这个可以在Plugin Management调用里面设置。
2.关于Joomla目录设置的问题。如果Joomla安装在域名的根目录下面(即通过http://www.xxx.com/就直接可以访问到joomla的index.php文件),可以留为空白,如果Joomla安装在二级目录下面(即需要通过http://www.xxx.com/joomla/才能访问joomla的index.php文件),则需要设置目录。

登录 或者   注册一个会员帐号 来参与讨论