【问题标题】:Rails caches_page :index in Wrong LocationRails caches_page:错误位置的索引
【发布时间】:2010-04-12 22:10:28
【问题描述】:

我的 Rails 应用中有一个控制器 Projects

caches_page :index

但是,缓存文件不是在/public/projects/index.html 生成的,而是位于/public/projects.html

Web 服务器(当前为 Mongrel)在 *.html 文件之前查找 */ 目录。所以http://…/projects 请求通过 Rails 路由,而我的索引缓存文件永远不会被提供。

如何让caches_page :index 改为在/public/projects/index.html 生成文件?

【问题讨论】:

  • 你在 routes.rb 文件中的根路由是什么?如果没有命名缓存文件 index.html,还有其他事情发生
  • 我的根路由是:map.root :controller => 'static', :action => ‘home’ 我的项目路由是:map.resources :projects

标签: ruby-on-rails ruby caching


【解决方案1】:

您可以通过将以下内容添加到您的 environment.rb 配置块来指定目录

config.cache_store = :file_store, "#{RAILS_ROOT}/public/projects" 

其他几件事:

  1. 缓存设置发生了一些变化 使用不同版本的 Rails, 知道什么会很有帮助 您正在运行的版本

  2. 一般来说,您最好使用高速缓存存储而不是文件存储(如果您的设备中有足够的 RAM)。

【讨论】:

  • 我使用的是 Rails 2.3.5。我可能会尝试使用 memcache,但 RAM 可能会很紧张,而且我相信 Apache 可以有效地为我的小型、低流量站点提供服务。但是,我并没有尝试更改缓存根,只是更改索引操作的缓存行为。
猜你喜欢
  • 1970-01-01
  • 2012-10-03
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
相关资源
最近更新 更多