我需要缓存我的Rails 4网站的主页。它全部是静态的,但顶部有动态用户状态块。如果用户未登录,则他看到登录链接,否则为名称和余额。出于这个原因,我们不能简单地缓存整个页面。我可以走什么路?如何在Rails中用单个动态块缓存页面
- 用AJAX缓存整个页面并添加用户状态块;
- 在没有此块的情况下使用整个页面的片段缓存;
- 您的版本...
我需要缓存我的Rails 4网站的主页。它全部是静态的,但顶部有动态用户状态块。如果用户未登录,则他看到登录链接,否则为名称和余额。出于这个原因,我们不能简单地缓存整个页面。我可以走什么路?如何在Rails中用单个动态块缓存页面
Rails允许您使用动态缓存密钥。
例如,你可以使用当前用户的id
作为缓存键的一部分:
cache "homepage_balance_user_#{current_user.id}" do
# stuff that belongs to a specific user
end
是的,但我认为,不要使用片段缓存,而是使用整个页面缓存(使用nginx)代替。你怎么看? – jarosluv
Afaik你不能那样做。如果部分页面只对特定用户可见,则无法缓存整个页面。而且由于只有Rails知道当前用户是什么,只有Rails能够决定在页面中包含哪些部分以及哪些部分不显示。 Nginx没有这个信息。 – spickermann
我们可以在nginx返回缓存后通过AJAX请求获取这些信息。或不? – jarosluv
语法和简化的小变化。 – rlandster