删除Rails缓存而不重新启动服务器

时间:2014-11-30 19:21:14

标签: ruby-on-rails ruby restart centos7

我有一个在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.

1 个答案:

答案 0 :(得分:0)

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

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

  • 完全自动化;无需明确启动和停止后台进程
  • 每次运行时重新加载应用程序代码
  • 更改配置/初始化程序/ gem依赖项时重新启动应用程序

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

把它放在你的Gemfile中

gem "spring", group: :development

然后运行,

$ bundle install
$ bundle exec spring binstub --all

此外,请确保浏览器的缓存关闭