【问题标题】:Remove Rails cache without restarting the server删除 Rails 缓存而不重新启动服务器
【发布时间】:2014-11-30 19:21:14
【问题描述】:

我有一个在 Ruby 1.9.3p551 和 Rails 3.2.12 上运行的应用

每次我对代码进行更改时,我都需要重新启动 Ruby 来获取它们。我已将环境配置为开发环境,并在我设置的 config/environments/development.rb 文件中:

 config.cache_classes = false
 config.action_controller.perform_caching = false

但是我还是需要重启服务器。

我的操作系统是 Centos 7。

【问题讨论】:

  • rake middleware | grep ActionDispatch::Reloader - 它显示use ActionDispatch::Reloader 吗?
  • 不@avlazarov,它没有显示,实际上没有显示任何东西。

标签: ruby-on-rails ruby restart centos7


【解决方案1】:

进行更改时必须重新启动服务器的原因不是因为应用程序缓存。事实上,根据helpful Rails caching guide,默认情况下甚至不会在开发/测试环境中进行缓存。您必须重新启动服务器的真正原因是因为启动服务器的工作之一是加载 Rails 应用程序代码。您对 Rails 应用程序文件所做的任何更改都不会更改当前加载的代码。因此,您需要通过重新启动服务器来重新加载代码。

但是,还有其他选择:名为 spring 的 gem 专门用于解决开发应用程序重新加载的问题(它作为 Rails 4 的标准 gem):

  • 全自动;无需显式启动和停止后台进程
  • 在每次运行时重新加载您的应用程序代码
  • 当配置/初始化程序/gem 依赖项发生更改时重新启动您的应用程序

这样,每次更改应用程序时都会重新加载应用程序

只需将其放入您的 Gemfile 中

gem "spring", group: :development

然后运行,

$ bundle install
$ bundle exec spring binstub --all

另外,请确保您的浏览器关闭缓存。

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 2012-12-12
    • 2011-03-08
    • 1970-01-01
    • 2018-04-07
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多