开门见山的介绍:1. 项目以信息展示浏览为主 2. 需要对整个网站前台进行静态化(社区讨论等动态内容除外)3. 项目层级结构较多(栏目 - 栏目 - 文章),更新频率较高(新闻资讯类网站)
项目以前主要用的 redis 做缓存,没有页面缓存。因为属于新手,没有这方面的经验,查阅过一些资料,也做过一些实验,求高手再指教指教
个人想法及实验:
这已经做过实验是可行的,当然用在项目中可能还会有其他问题,希望有高手分享一下这种 rails 网站静态化的经验。
iframe 这种东西不要用,爬虫看不到
动态的部分可以用 Ajax 调出来,比如 用户栏 那个区域
#2 楼 @huacnlee 嗯,这个倒是没有问题,不过看 1 楼的 回复,貌似这种思路不太对啊,我现在就是还在确定这种静态化的思路
#1 楼 @ywencn 哦,这样啊,那有什么好的方法没有,网站的模板肯定会到处用到,里面的内容还是有点多,不用 iframe 又用什么好呢,请指教
应该有静态化这种 gem 吧
可以整体页面静态化,也可以局部静态化。至少信息介绍的主题可以静态化,修改之后重新静态化一下。 页面可以采用拼接的形式,静态页面拼接动态内容。
#6 楼 @woaigithub 你好,gem 我自己去找一下,你说的静态页拼接动态内容是什么概念?我们目前的确用了很多的 fragement cache,但是因为其实很多都是文章的内容展示,根本没有必要再去把这些内容缓存一下再让浏览器去渲染,就是想把每一篇文章都做成一个静态的 html 页面,因为网站就是信息咨询展示为主,如果能把每一篇文章都做成静态的,那么效果将会好很多,现在的问题还是即使一个文章展示页,也包含了很多其他的模板信息(静态内容),及热门文章等(动态内容),就是在考虑怎么去把这个页面静态化,你说的拼接动态内容,不知道是用什么方式
静态页面中包含一段 ajax 获取动态内容的代码,负责获取动态的内容。
独立静态化的过程,单独定时静态化,或者在 save 之后调用静态化组件负责静态化页面。
#8 楼 @woaigithub 额……这样啊,好像还是有差距啊,模板中那么多动态内容,感觉都去用 ajax 去一次,有点…… 先再想想吧,谢了
建议去看一下 Gregg Pollack 的 Scaling Rails(自己搜索下载,是免费视频),虽然有点老了,讲的是 Rails2 的内容,但思路很受用,很多方法目前还很管用,里面有很多关于缓存的策略。
另外 Rails4 即将带来 Russian-doll,更加好用。
#11 楼 @Macrow 大谢了,呵呵,研究研究