我在rails 3中使用caches_page
,一切顺利,但我不希望默认情况下这些缓存文件在公共目录中传播,所以我更改了默认缓存目录,如下所示:
config.action_controller.page_cache_directory = Rails.public_path + "/caches"
是的,它仍然有效,它将缓存文件写入public/caches
目录,但它似乎在刷新同一页面时没有读回来,它每次都会再次写入一个新的缓存文件。
我应该做些什么或任何配置来解决这个问题?或者我应该使用默认的缓存目录?
谢谢大家:)
埃迪
答案 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/"