【问题标题】:How can I stop rails from caching partials from outside rails app or clear the cache with a task如何阻止rails缓存来自外部rails应用程序的部分或通过任务清除缓存
【发布时间】:2012-02-15 03:17:50
【问题描述】:

我有一个 rails 应用程序,它显示正在呈现为部分内容的内容,它位于我的 rails 应用程序之外,但在同一个 Web 服务器上。

这一切都显示得很好,但是这样做的目的是允许其他人将内容推送到此文件夹而无需重新启动 rails 应用程序。部署和显示很好,但是内容被缓存了,因此在重新启动服务器之前它仍然不会更新。我尝试围绕对部分的调用创建一个片段,并创建一个 rake 任务以在部署内容时将其删除:

在我看来:

    <% cache("frag_key") do %>
      <%= render :partial => "#{@content_path}.rhtml" %> 
    <% end %>

耙任务

    namespace :cache do
      desc 'Clear memcache'
      task :clear => :environment do
        Rails.cache.delete('frag_key')
      end
    end

有什么方法可以停止缓存这些特定文件? 我的解决方案理论上是否可行并且我做错了什么? 任何帮助表示赞赏。

编辑:我还应该注意我没有使用内存缓存。

【问题讨论】:

    标签: ruby-on-rails caching partial-views


    【解决方案1】:

    您的解决方案行不通。如果您想真正呈现文件,则需要重新启动应用程序或禁用缓存,这会大大降低您的应用程序速度。

    您可以做的只是将部分文件视为外部文件并使用标准 IO 操作从磁盘读取它。如果你需要执行一些 Rails 代码或访问应用程序的细节,这种方法是行不通的。

    我记得在 josé valims 优秀的书籍“Crafting Rails Applications”中阅读了一些关于在数据库中存储视图代码的内容。也许这会给您一些想法,让您了解如何找到合适的解决方案。

    【讨论】:

      猜你喜欢
      • 2019-03-08
      • 2014-05-13
      • 2012-08-15
      • 2011-02-20
      • 1970-01-01
      • 2015-01-06
      • 2019-12-23
      • 2013-11-18
      • 1970-01-01
      相关资源
      最近更新 更多