用rails实现简单的网页伪静态化

转载 2007年09月25日 22:17:00

所谓网页的静态化,本来是指的动态网页为了提高访问速度,把原本需要动态生成的每一个网页,在硬盘上生成一个静态的文件,从而大幅度提高对动态内容请求的速度,减轻服务器的负载。

伪静态化,就是指的,虽然从网址上看是一个静态的网页(以.html结尾),但实际上是动态生成的页面。比如 http://www.somesite.com/topic2/1234.html,从网址上看似乎是一个位于网站topic2目录下的一个纯html文件,但是服务器在收到topic2/1234.html 的请求时,是按照预先设定好的规则,把这个请求转换成动态的指令,也就是说,上面的请求在服务器内部也许会转化成 http://www.somesite.com/showtopic.php?category=2&id=1234。

 说了这么多,究竟伪静态化有什么用呢?其中一个重要的理由,就是可以提高页面对搜索引擎的权重,google等搜索引擎,比较偏爱收录静态化的网页,而不是带着一堆参数的动态url的网页,所以,在SEO上,网页伪静态化是很重要的一部分。

实现伪静态化的方法有很多,目前主要是用apache中的url_rewrite模块,对传入的url请求进行重写,在rails里,更是提供了一整套url生成机制,生成“pretty url”。

在rails里,显示某个文章或者topic的典型url格式是:

:controller/:action/:id

比如: http://www.a-rails-site.com/topic/show/80

整个url很漂亮和简洁,唯一的缺点就是后缀没有.html,其实,只要很少的修改,就可以达到伪静态化的效果。

只要把link_to生成显示文章的连接稍改一下,就可以了:

原来是:
<%= link_to :controller => 'topic', :action => 'show', :id => topic.id %>

现在我们只要把后面改一下,改成:
<%= link_to :controller => 'topic', :action => 'show', :id => "#{topic.id}.html" %>

这样,就生成了类似http://www.a-rails-site.com/topic/show/80.html的格式,而且其他的部分不用更改。因为在controller中,一般通过:id找到文章,类似:

@topic = Topic.find(params[:id])

传入的:id是字符串,find之前,要对传入的:id参数做to_i处理,"80.html"经过to_i之后就是80,所以只要是类似的:id格式,都可以修改一下link_to就达到伪静态化的效果了~

 

 

Ruby on Rails 网站大型化之静态资源 CDN 架构

rails是个很成熟的网站开发架构,设计者也与时俱进把很多先进的技术与架构集成到rails中,造就了其他框架无法比拟的开发效率。网站发展到一定程度,网站流量越来越大就不能把静态文件请求和动态网页请求放...
  • canyue102
  • canyue102
  • 2016年03月08日 21:25
  • 1200

使用Url Rewrite进行URL重写(实现网站伪静态)

http://blog.163.com/zhangmihuo_2007/blog/static/27011075201351433716225/ 有些项目需要隐藏请求地址的后缀,比如...
  • luofeixiongsix
  • luofeixiongsix
  • 2015年11月04日 16:52
  • 1384

url伪静态、url重写

url重写的好处: 1、保护真实url的结构组成,提高安全性 2、有利于搜索引擎的收入,提高搜索排名 java web中对url进行重写方法: 1.引入urlrewritefilter jar包 d...
  • veryisjava
  • veryisjava
  • 2016年12月28日 20:13
  • 1657

JSP页面静态化总结之一使用URLRewrite实现url地址伪静态化

1使用URLRewrite实现url地址伪静态化1.1URLRewirte的用处 1.满足搜索引擎的要求。 2.隐藏技术实现,提高网站的移植性。 3.满足美感的要求(个人感觉这个用处...
  • SUN_song520
  • SUN_song520
  • 2016年10月16日 11:45
  • 346

网页静态化和网页伪静态化之间的区别与选择

网页静态化和网页伪静态化,如果我们是一个不懂网站的人估计听到这些词可能会比较头晕,王晟璟在刚开始接触并尝试建设自己的个人博客网站的时候也是如此,看了很多关于这方面的资料也还是云里雾里的,不过后面终于整...
  • elsery
  • elsery
  • 2015年10月30日 14:38
  • 2000

java项目——URLRewrite实现url地址伪静态化

大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp、*.php页面。但实际上绝大部分网站都是动态的,不可能全部是静态的HTML页面,因此互联网上 大部分网站都会考虑伪静态——就...
  • zhangzijiejiayou
  • zhangzijiejiayou
  • 2016年02月29日 21:51
  • 1701

URLRewrite伪静态实现-url重写技术

一.直观感受 1.未使用重写url 2.使用重写url 二.伪静态技术介绍 1.使用优点: 满足搜索引擎的要求、隐藏技术实现,提高网站的移植性 、满足美感的要求  2....
  • techbirds_bao
  • techbirds_bao
  • 2013年06月05日 10:53
  • 2297

windows2008(64位)下iis7.5中的url伪静态化重写(urlrewrite)

以前在windows2003里,使用的是iis6.0,那时常使用的URL重写组件是iisrewrite,当服务器升级到windows2008R2时,IIS成了64位的7.5,结果iisreite组件是...
  • smartsmile2012
  • smartsmile2012
  • 2016年06月06日 10:02
  • 5452

thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)

thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成
  • leyangjun
  • leyangjun
  • 2014年12月22日 15:26
  • 3807

Rails在production环境下css资源找不到路径的解决

Rails的生产环境下assets的名称里会嵌入md5散列,所以在生产环境中在css里直白的使用比如logo.img或../assets/dark.jpg之类的名称,就会发生找不到路径的错误!这个问题...
  • mydo
  • mydo
  • 2017年03月08日 21:39
  • 1115
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用rails实现简单的网页伪静态化
举报原因:
原因补充:

(最多只允许输入30个字)