Ruby on Rails中的页面缓存和i18n

3

我有一个应用程序,其中使用i18n和Globalize3进行模型翻译。我现在正在实现页面缓存,想知道如何在Ruby on Rails上处理i18n的页面缓存?

我如何在Ruby on Rails中使用i18n和Globalize3进行页面缓存处理呢?

1个回答

4
如果你遵循“一个网址=一个页面”的规则,缓存就很容易实现。如此简单,我真的不知道还能加什么...只需使用片段缓存或页面缓存即可。
如果您的网址中没有语言环境(这不是一个好习惯),那么缓存将会更加困难。
来自Rails指南:(链接)
您可能会尝试将所选语言环境存储在会话或cookie中。请不要这样做。语言环境应该是透明的,并且是URL的一部分。这样,您就不会破坏人们对Web本身的基本假设:如果您向朋友发送某个页面的URL,她应该看到相同的页面、相同的内容。这种方法被称为RESTful。在Stefan Tilkov的文章中了解更多关于RESTful方法的信息。下面讨论了这个规则的一些例外情况。

它可能在URL中出现一次,但是它是否需要在每个请求的URL中呢? - dstarh
像Facebook和Twitter这样的网站主页似乎没有URL中的语言环境..他们是如何做到的? - samvermette
@apneadiving 是的,但URL始终相同(例如twitter.com)。所以我想知道:如果一个URL!=一个页面,他们是如何进行缓存的? - samvermette
1
@samvermette:他们不会进行任何页面缓存,这对于实时墙/推文来说是没有意义的。我想有很多片段缓存/查询缓存。 - apneadiving
@apneadiving 哈哈,好主意,我甚至没有想到。谢谢! - samvermette
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接