在Rails 3中caches_page似乎无法正常工作?

时间:2011-07-12 11:07:06

标签: ruby-on-rails-3 caching

我在rails 3中使用caches_page,一切顺利,但我不希望默认情况下这些缓存文件在公共目录中传播,所以我更改了默认缓存目录,如下所示:

config.action_controller.page_cache_directory = Rails.public_path + "/caches"

是的,它仍然有效,它将缓存文件写入public/caches目录,但它似乎在刷新同一页面时没有读回来,它每次都会再次写入一个新的缓存文件。

我应该做些什么或任何配置来解决这个问题?或者我应该使用默认的缓存目录?

谢谢大家:)

埃迪

2 个答案:

答案 0 :(得分:1)

实际上它与运行应用程序的服务器有关。

例如:Webrick默认缓存目录是“public”

因此,当您将page_cache_directory设置为public时,将正确提供缓存页面。

问题与服务器有关,而与应用程序无关。

引自http://guides.rubyonrails.org/caching_with_rails.html

“默认情况下,页面缓存目录设置为Rails.public_path(通常设置为公共文件夹),可以通过更改配置设置config.action_controller.page_cache_directory来配置。更改默认设置有助于避免命名冲突,因为您可能希望将其他静态html公开,但更改此设置将需要重新配置Web服务器,以使Web服务器知道从哪里提供缓存文件。“

答案 1 :(得分:0)

您可能需要在/之后添加caches,请尝试:

config.action_controller.page_cache_directory = Rails.public_path + "/caches/"

我在Rails 3应用程序上有这个,它可以工作:

config.action_controller.page_cache_directory = Rails.root.to_s + "/tmp/cache/"