我在rails应用程序上开发了一个ruby。它的大部分内容都是静态的(不会对数据库产生影响)。它只会改变对语言的依赖。
我已将语言定义为网址的一部分。例如:“mydomain / en / page”将是英文版。 我已经定义了一个过滤器,如果在url中没有指定语言,它会将他重定向到默认值:
def set_locale
I18n.locale = params[:locale] || extract_browser_prefered_language || I18n.default_locale
if params[:locale] == nil
redirect_to url_for( :locale => I18n.locale )
end
end
因此,当用户进入“mydomain”时,他被重定向到“mydomain / en”。
现在我想添加缓存。 正如我之前所说的所有内容都是静态的,我将对所有页面使用“caches_page”。当用户输入“mydomain / en”而不是“mydomain”时,这是有效的,因为重定向过滤器。
我是否可以仅向mydomain / en请求添加页面缓存? 还有其他想法吗?
感谢。
答案 0 :(得分:0)
我解决了它覆盖ApplicationController
中的cache_page函数class << self
def cache_page content, path, p3, p4
available = %w{ca es en}
if available.include?(path.split("/")[1])
super content, path, p3, p4
end
end
end