在Ruby on Rails路由中,可以是www.example.com/ ...#! ...总是去控制器=> “重定向”?

时间:2010-06-26 11:19:13

标签: ruby-on-rails routing

在Ruby on Rails路由(使用route.rb)中,可以说,对于任何具有以下形式的URL:

www.example.com/ ...  #! ...

然后使用控制器redirect

这样,在AJAX中,某些页面可以标记URL末尾的#!,以便感兴趣的真实内容是#!

之后的部分

1 个答案:

答案 0 :(得分:4)

你似乎想做像facebook那样的事情,是吗?

那么,你需要考虑在浏览器上的ajax中做了什么,以及在服务器上做了什么,以及浏览器发送给服务器的内容。具体来说,你应该知道这一点:

浏览器永远不会在#签名之后向服务器发送任何内容。

因此,如果网址为http://mysite.com/foo/bar#!/baz,则向服务器发送的所有更明显的是http://mysite.com/foo/bar。所以你的问题,关于服务器端处理,并没有真正意义,因为服务器端的Web应用程序看不到。

你需要的是一些浏览器端的javascript来获取以#!结尾的网址,并为服务器创建XMLHttpRequest类似http://mysite.com/content_js/bar的内容,然后可以返回内部没有所有页眉,页脚和侧边栏的内容,包含在某种json对象中。然后,浏览器端的javascript可以呈现该内容。