【问题标题】:Rails Caches_Page being misplaced due to namespacing由于命名空间,Rails Caches_Page 被放错了位置
【发布时间】:2010-04-12 20:38:41
【问题描述】:

我在命名空间中有一个控制器,想缓存它的索引。我成功地缓存了不在命名空间下的页面,也成功地缓存了片段。

当我访问 http//.../house/kitchen 时,它成功创建了 /public/house/kitchen.html。但是它永远不会找到它,所以它总是覆盖缓存的文件。

我无法找到带有 cache_page 或 caches_page 的选项来帮助我将缓存文件定向到正确的位置。

另一个令人沮丧的事情是http//.../house/kitchen/table成功读取并创建了/public/houose/kitchen/table/new.html。

我将不胜感激任何方向!

编辑:添加细节
红宝石:1.8.7
导轨:2.3.5
服务器:Mongrel

编辑:我已将 kitchen.html 放置在公用文件夹中的每个可能位置,此控制器似乎只是拒绝阅读它。

【问题讨论】:

    标签: ruby-on-rails caching


    【解决方案1】:

    我的建议是不要使用命名空间,任何你想做的关于 url 的事情都可以通过路由来完成。为什么必须使用命名空间控制器?

    【讨论】:

    • 不幸的是,我不拥有该应用程序。一旦我用头撞墙足够长的时间,并且可以证明删除命名空间可以解决问题,那么就有可能。
    【解决方案2】:

    我不确定它是否相关,但我发现不久前有一个 issue 与 goldspike 网络服务器。
    所以也许你的网络服务器也缺少一些东西(顺便说一句,你使用的是什么网络服务器)?

    【讨论】:

    • 当前使用 mongrel。我不认为这是相关的,因为 mongrel 成功地使用片段和未命名空间的页面视图做到了这一点。
    • 我看不到github.com/rails/rails/blob/master/actionpack/lib/… 的明显原因,但你可以试一试,也许你会发现一些东西。也许这与网络服务器本身有关......
    【解决方案3】:

    我想我遇到了同样的问题。如果是这样,我知道原因,但还没有找到解决办法。

    Web 服务器先找到目录http://…/house/kitchen/,然后再找到文件http://…/house/kitchen.html。这个目录不包含index.html,所以它将路由传递给Rails,它会生成一个新文件。

    所以,你可以:

    1. 将缓存文件放在http://…/house/kitchen/index.html

    2. 告诉您的网络服务器在查找*/ 目录之前查找*.html 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多