我使用will_paginate插件。Rails will_paginate路由緩存重複頁面
在奧德生成我可以緩存(的/posts/index/2
代替/posts?page=2
)途徑添加以下到我的routes.rb:
map.connect '/posts/index/1', :controller => 'redirect', :url => '/posts/'
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil
第一行重定向/posts/index/1
到/posts/
使用重定向控制器,以避免有一個重複的頁面。
我設置'posts/index/:page'
規則的方式有什麼問題嗎?
我認爲加入:requirements => {:page => /\d+/ }
將確保/post/index/
沒有:page
參數不應該工作,但/posts/index.html
得到緩存。
如何將/posts/index/
重定向到/posts/
以避免同時有/posts.html
和/posts/index.html
?
感謝
UPDATE
我只是簡單地添加
map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'
而且我沒有得到重複的網頁了。
但是,我仍然不明白我爲什麼會得到/posts/index.html
。歡迎任何有關如何使這條規則更加簡潔的解釋或建議;)!
map.connect '/posts/index/1', :controller => 'redirect', :url => '/posts/'
map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil
謝謝你,我一定會嘗試,並回來更新這個線程。 – deb 2010-02-26 22:54:08