登录 注册

登录

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

更多
2009年02月09日 17:06 #41 作者: jade
Joe 可以看看 wordpress.org/extend/plugins/wp-super-cache/ 这个插件,可以说是一个完美的插件,另外,Joe你生成的静态文件一定要放在 /cache 目录里面,因为在真实环境里面,CS现在生成的文件是在根目录/之前也试过是放在(以域名命名)的目录里面,如果都放在根目录,维护和删除过时的缓存文件不容易,所以说所有 CS文件 都放在 例如 /cache/joejoe 里面,这样删除过时或者全部CS文件更加好管理,J1.59也注意到删除过期缓存这个问题,但是设计太失败!

不贪加官再封爵位 并未见有所作为 闲人或许总给看低 没与你争辉 处事深不见底

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

更多
2009年02月09日 18:35 #42 作者: Joomla之门
我非常赞成将静态页面保存在 /cache 目录这个观点!这样将便于网站管理。

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

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

更多
2009年02月09日 22:12 #43 作者: Pooh
效果果然很好,是比以前快了

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

更多
2009年02月10日 13:39 - 2009年02月10日 13:43 #44 作者: jade
a.Joe说写过一个插件可以将汉字标题自动转换成拼音别名,期待Joe的发布
b.如果直接支持UTF-8中文别名就更加好了,核心hack可以直接支持
c.参考资料:
http://www.maycode.com/index.php/forum.html?func=view&id=2675&catid=9
http://www.phoca.cz/phoca-international-alias-plugin

http://www.joomlatags.org/native-joomla-core-enhancements-plugin-readmoreext.html

另外Joe的这个插件,只要点击图片就可以打开这个文章的连接,不错也!正在使用,不知道能不能做到点击read more之后,就以AJAX方式加载文章的内容,这样就可以不用打开文章,直接在首页看文章的内容了!

另外,这个是一个全局控制图片大小的code,我在J的网站上已经使用,因为J没有找到适合的插件,所以只能以CSS的方式实现了,哈哈,不知道Joe老大能不能开发个J控制图片大小的插件,帮助一下J的用户了!
img {    
max-width:600px;     
myimg:expression(onload=function(){     
this.style.width=(this.offsetWidth > 600)?"600px":"auto"});     
}

Joe的很多小插件都非常有用,为什么都没人提出些意见了,大家都做read only!提议Joe把自己开发的小插件做成一个插件包,集成这些小插件的功能进去了,叫 Joomla! Joe Pack 也可以了!

不贪加官再封爵位 并未见有所作为 闲人或许总给看低 没与你争辉 处事深不见底
最后修改: 2009年02月10日 13:43 由 rushki.

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

更多
2009年02月10日 13:44 #45 作者: joeguo
不一定要放在cache目录下面,可以自己新建一个目录:比如html,然后所有的路径配置都指向这个目录就可以了。
如果将所生成的html文件放在cache目录下,需要下面的操作:
1.将参数" Joomla base dir' 设置成cache所在目录:
比如:如果将Joomla安装到C:\wamp\www(或 \var\www),
请将"Joomla base dir"设置为 C:\wamp\www\cache (or \var\www\cache).

2.将下列两行代码添加到.htaccess
RewriteCond %{DOCUMENT_ROOT}/cache/%{REQUEST_URI} -f
RewriteRule (.*) /cache/$1 [L]
这两行代码应该在"RewriteEngine On"后面,在Joomla 核心rewrite部分的前面

如果要将html文件放在一个目录下,不如:static,可以先建立一个static目录,然后将上面所有有cache的部分都换成static就可以了

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

更多
2009年02月10日 14:03 - 2009年02月10日 16:07 #46 作者: joeguo

不知道能不能做到点击read more之后,就以AJAX方式加载文章的内容,这样就可以不用打开文章,直接在首页看文章的内容了!

好主意,过后加上这个功能。
刚刚看过,很遗憾不容易添加。ReadMore是在Com_content模板里面处理的,如果要进行替换,需要新建立一个system plugin,然后进行替换,而目前ReadMmoreExt是一个content plugin。

不知道Joe老大能不能开发个J控制图片大小的插件

用Css方式就很好呵,如果写成插件估计也就是自动插入你这段css代码吧?

Joe 可以看看 wordpress.org/extend/plugins/wp-super-cache/ 这个插件,可以说是一个完美的插件


Super Cache做的果然比较细致入微。
其中几点非常值得借鉴:
1.将内容存为gzip压缩后的内容。这样需要
mod mime 和mod rewrite modules,mod_rewrite一般虚拟主机都有,至少lunarpages就没有安装mod_mime模块,给他们发邮件,他们说有安全漏洞。可能是他们的推辞吧。
2.通过cookies来判断是否为登录用户,然后通过RewriteCond决定是否导向html静态文件。

3.通过mod_header来设置了Cache信息。

有时间慢慢的添加这些特性吧。
希望大家多提自己的使用感受,和改进意见,大家的建议使我受益良多。
另外,还请大家多帮忙测试插件,我一个人既开发又测试,一个插件就那么2-3天的时间,肯定有不充分的地方,特别是在Windows平台下的测试很不足。
先多谢了!
最后修改: 2009年02月10日 16:07 由 jumpfrog.

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

更多
2009年02月10日 16:13 #47 作者: jade
Joe的插件我有使用,所以很快会找到问题,但是又怕Joe没时间看反馈,所以之前发现些BUG没写出来,我是在XAMPP测试的网站,所以Windows的IIS平台还是交给专业人员来测试了!

之前一直不知道“Joomla base dir”是做什么的,以为是放 J 的目录,那请问Joe这个是放J的目录还是CS生成的目录了,我觉得很多人以为是J的目录,如果是 /home/public_html/网站/cache/joecache 这样的形式,这个相信很多用户根本不知道他们网站的这个原始目录可以在哪看出来,假如是放CS的目录,就简单多了,index.php 调用 /cahce 里面的静态文件,wp-super-cache就是这样,但是wp-super-cache也有个问题,如果 cache 目录坏了,或者改了服务器,例如换到新的服务器里面 /home/public_html/新网站/cache/joecache ,这时候网站就访问不了!好像 J 的cache也是wp-super-cache的作者做出来的,不知道是不是!另外,J的核心删除缓存的功能不能删除 /home/public_html/新网站/cache/joecache 这个目录,所以说缓存可以说是很简单也可以说是很复杂,其实就是删除缓存、过期文件,生成缓存或者一次生成所有文章的缓存(不用用户点击文件之后才生成)!

用CSS方式就很好呵,如果写成插件估计也就是自动插入你这段css代码吧?

用CSS方式,每次都要修改CSS文件,如果是插件插入,可以随时改变 宽和高 的px,还可以用x%来显示。

不贪加官再封爵位 并未见有所作为 闲人或许总给看低 没与你争辉 处事深不见底

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

更多
2009年02月10日 17:30 #48 作者: joeguo
Joomla base dir最初的意思就是用来指安装的Joomla目录,由于当时就直接在Joomla根目录下面生成静态文件,没有考虑写到cs目录下面。CS目录和Joomla Root目录是一个目录,现在如果允许生成到单独的CS目录下面,实际上是指CS目录。
最初留这个目录,是由于一个bug,当Joomla安装到次级域名(http://xxx.com/joomla)的时候,不能找到正确的目录,现在这个Bug已经修复掉了,保留这个参数,实际上是指静态文件生成所在的目录了。

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

更多
2009年02月10日 21:17 #49 作者: Pooh
我先后安装了contentstatic和CssJsCompress,是HostMonster主机

已出现以下几个问题:
1、登录后台,必须要在administrator/之后添加index.php,否则是一片空白页面。
2、安装CssJsCompress后,前台模板实效,页面为无模板状态,禁用后正常。
3、打开我的joomla目录,发现很多文章的html文件,还有单元、分类、文章的文件夹,幸好文章不是太多,否则混乱不堪了。

我对contentstatic的joomla基准目录没有设置,是空白。
对CssJsCompress插件参数全部选“是”

请教:
1、如果我的站点路径是/home/123456/public_html/joomla,我如何填写joomla基准目录,是不是因为是空白所以才将缓存文件放在网站目录?
2、我如果删除在网站根目录多出来的一些缓存文件,直接删除有影响吗?或者我将这些文件移至joomla基准目录填写的路径也可以?
3、要启用CssJsCompress插件,是不是需要要按要求在.htaccess文件添加代码?

谢谢!

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

更多
2009年02月11日 10:53 - 2009年02月11日 13:56 #50 作者: joeguo
这两个插件不会影响到administrator,如果是空白,请检查是不是administrator目录下面是否有index.html等空白文件。导致必须用index.php,肯定是已经有被服务器当作主页的文件。

1.对于content static,如果base dir是空白,插件会直接在Joomla root目录下面生成文件。如果想在Cache目录下面生成文件,请参考本帖中的文档。
2.可以直接删除生成的文件。
3.CssJsCompress,在设置好.htaccess和确认服务器安装mod_mime,mod_rewrite,zlib之前,请不要打开GZIP开关,默认的情况下只是打开合并,而没有打开GZIP.
要恢复,请将生成的.css.gz,js.gz文件删除掉。

建议安装插件前,先在本机测试,否则多危险?
最后修改: 2009年02月11日 13:56 由 hahacc.

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

更多
2009年02月11日 13:10 #51 作者: Pooh
谢谢。
administrator目录下面是有index.html,删除后正常了;
多余生成的文件我昨天删除了,没影响;
服务器安装mod_mime,mod_rewrite,zlib,我会挨个查看。

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

更多
2009年02月13日 12:30 #52 作者: jade
Joe的插件现在有一些疑问:

1.开启CS插件之后,是否需要禁用系统自带的缓存机制?

我现在把CS的目录设定在,/cache 目录里面,这样用系统自己带的删除缓存就会连 CS的静态文件也一起删除,其实之前我是把CS静态文件设定在 /cache/joecache 目录里面,但是这样删除缓存的时候会把这个目录也一起删除掉,而且CS插件不会自动生成这个目录,所以没办法之下,只能设定在 /cache 里面了!假如cs可以自动生成 cs 目录就更加完美了!

2.J调用CS静态文件与系统缓存哪个位置排第一,现在有几个情况:

a.cs 与 cache 同时开启,调用哪个?如果同时开启是调用 cache 那 cs 就无效,反之,如果是调用 cs 那系统还是会生成 cache 文件,那CS生成的原理是不是在系统生成 cache 之后再生成 cs?

b.cache关闭,那系统是否会调用 cs ?另外现在关闭cache的情况之后,cache目录还是会有文件的生成,算J的缓存BUG不?

3.希望Joe可以增加一个debug功能,在html的最后面加上标签,例如:<-! joe cache >,那平时测试的时候,就会知道这个网页有没有调用到 cs ,还有就是可以指定和自动生成 cs 目录的功能,最好当然还有 delete & rebuild 的功能了,如果不是又要保存应用,再去系统菜单-缓存-删除,当然在这个插件界面可以全部完成就更加好了!Thank You!

不贪加官再封爵位 并未见有所作为 闲人或许总给看低 没与你争辉 处事深不见底

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

更多
2009年02月13日 14:39 #53 作者: jackyking
我打赌你肯定没看过生产的html文件的源代码...

问题1.不放在cache文件夹下不就可以了...文件夹被删除以及被清空是joomla自己的清理缓存机制造成的,为什么一定要搞成这么复杂呢...

问题2.Joomla的缓存上更多的是对Query的缓存...ContentStatic的页面完完全全是html代码,两个没有必然的联系,只有在第一次生成html页面的时候才会可能访问到cache里边的东西..两者同时开启的话CS默认只对url请求包含view=article的页面生成html,对于其他页面则是cache起作用

文件附件:

本站维护下列组件汉化
  • Community Builder 1.2RC4 Qcontacts
  • uddeIM 1.6  Custom Properties Alphauserpoints
  • JomComment JComments JFusion

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

更多
2009年02月14日 12:12 #54 作者: joeguo
回答Jade的一些问题,这些问题都非常有价值。
1.CS和Cache最好都开启,毕竟CS只是静态化文章,对于blog list,front page以及一些其它的组件都不进行处理。
2.关于CS和Cache谁先谁后问题。
a:在生成静态化文件和Cache的时候,它们没有先后之分,但是它们两个肯定要是System plugin 里面最后的两个插件。这样在所生成的html文件和Cache里,就可以把其它插件所处理的效果都包含进去。
b:关于调用的问题:
########## Begin - Joomla! core SEF Section
#
#请求文件名不是真正的文件
RewriteCond %{REQUEST_FILENAME} !-f
#请求的不是目录
RewriteCond %{REQUEST_FILENAME} !-d
请求的Url不是以index.php开头
RewriteCond %{REQUEST_URI} !^/index.php
#请求的是以php,html,htm,feed,pdf,raw为扩展后缀的Url或者没有扩展后缀
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)[NC]
#满足以上条件的请求都转发给index.php处理
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

我们先来看看Joomla Core的SEF代码,我已经添加了注释。
如果是CS直接在Joomla root目录下面生成.html文件的话,那么第一条就不满足(所请求的文件存在),这样.htaccess的重写请求就不起作用了,直接交回给Apache来处理,Apache当然就直接将这个html文件返回给浏览器了。

对于Joomla来说,入口都在index.php这儿,Cache只是进入入口后的一步检查而已,如果发现Cache里面有要请求的内容,就直接将Cache的文件内容返回给用户。这样,也可以省掉database的操作,只是php文件的加载和执行仍是不可以避免的。

对于已经生成了html文件的(目录正确),肯定是已经直接从cs文件调用的。

3.两个插件均不相互依赖,都可以单独存在。

4.关于目录创建问题,我现在正在考虑怎么处理比较好。
我想可以通过一个选项来处理,“是否存放单独目录”,如果选择否,那么就直接在Joomla root目录下面生成文件,如果选择“是”,CS可以自己创建一个html目录,然后将生成的文件都放在html目录下面。
只是对于单独目录存放,需要修改.htaccess文件。
不知道大家有什么更好的处理方式?

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

更多
2009年02月14日 21:08 #55 作者: jade
1.请Joe不要把CS文件默认在Joomla root目录下面生成,这是一个非常不好的做法,特别是网站转移和网站维护的时候,很多人以为是这是系统文件,不敢随便删除!相反这些静态文件是有时需要更新和删除的了,现在这个插件没有删除过期文件的功能,所以维护起来也不容易!如果是经常不更新的文章,这种在网站根目录Directly cached files是可以的,前提也是这些文章不更改和官方不更改核心SEF!

2.Joomla base dir相信搞到很多人也迷惑了!PHP的 SERVER["DOCUMENT_ROOT"] 这个参数,可能有用户不知道在哪里看到!

3.忘记了Joomla!的插件也有顺序,最佳顺序是:
System - CssJsCompress
System - Cache
System - contentstatic

期待Joe的加强版本!

不贪加官再封爵位 并未见有所作为 闲人或许总给看低 没与你争辉 处事深不见底

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

更多
2009年10月02日 11:38 #56 作者: aaronzy
文章的评论也一起静态化了吗?还是文章静态化,评论动态化?

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

更多
2012年03月11日 07:00 #57 作者: xingyn2008
请教高手几个关于这个静态插件的问题:
1、我在unix/apache环境下使用这个静态插件,开启了joomla后台的【搜索引擎友好链接】和【给URL添加后缀】两项后,域名的确添加了.html后缀。但是并未在目录下生成静态页面。(这其中要说明,我再本地win/apache环境下,在cache中生成了一个index.php的目录,这个目录下里面有很多以日期命名的文件夹,是否这就是静态效果?)
2、上面是我没有打开joomla的【使用Apache的重写模式:mod_rewrite】,因为打开这一项后域名改为www.xxxx.com/2011-01-........中间不再有/index.php/这个目录,因此访问提示找不到文件。
3、另外在unix/apache这个环境下,在.htaccess文件加入joe说的两行代码后,网站无法访问500错误。即便是不修改htaccess中得源代码,只是按照【使用Apache的重写模式:mod_rewrite】中提示的先把htaccess.txt改为.htaccess后,也同样提示500错误。(这里有一个现象,就是ftp打开joomla安装所在目录后是看不到.htaccess这个文件的,但是把htaccess修改为.htaccess后是能看到这个文件的,不知道为什么是这个样子?)

最后,请问这个插件的终极效果在域名上倒地呈现什么样子?是不是应该为www.xxx.com/日期命名的文件夹名/....html,也就是说连index.php这个路径也不应该存在了?是不是这样。一定请高手逐条的耐心帮忙解决一下,非常感谢了,调试了很久就是无法成功。

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

更多
2012年03月12日 07:44 - 2012年03月12日 07:49 #58 作者: xingyn2008
现在在本地win/apache环境下应用该插件的新问题是,的确生成了静态文件,我插件设置的默认生成地址是D:/user/webroot/cs
结果的确在cs下生成了一个index.php的目录,这个目录里面很多以日期命名的子目录然后就是静态html文件。cs是joomla安装目录的二级子目录,但问题是打开joomla下得【使用Apache的重写模式:mod_rewrite】后,他默认的域名是www.xxxxx.com/2010-........。请问如何设置rewrite的规则让他指向www.xxxxx.com/cs/index.php/2010-0523-....这样的路径呢?

在.htaccess里加入了
RewriteCond %{DOCUMENT_ROOT}/cache/%{REQUEST_URI} -f
RewriteRule (.*) /cache/$1 [L]
cache也做了相应的更换等,没有作用啊,apache的重写依旧如初。
最后修改: 2012年03月12日 07:49 由 xingyn2008.

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

更多
2012年07月19日 03:01 #59 作者: frog
您好,我现在在使用您开发的插件content static 但貌似这个组件目前只能在点击相应的文章之后,才会产生相应的html文件,但却无法实现后台更新文章后,自动生成html文件,不知道这方面应该如何实现,能否指导一下,非常感谢

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

更多
2012年07月19日 03:07 #60 作者: joeguo
生成静态页面,Joomla要做许多事情。
可以在article save的时候(有个event,忘记啦,你自己查一下),用程序模拟请求一下页面就可以啦。

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