You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7修改代码后需重启服务器才能生效,如何解决?

Rails 7开发环境修改内容需重启服务器的解决方案

1. 确认开发缓存已关闭

运行以下命令切换缓存状态,确保开发环境缓存处于关闭状态:

rails dev:cache

执行后会提示"Development mode is now being cached"或"Development mode is no longer being cached",确保是不再缓存的状态。同时可手动检查tmp/caching-dev.txt文件,若存在则直接删除。

2. 检查Puma配置

打开config/puma.rb,确认开发环境下未启用preload_app!:

# config/puma.rb
if ENV['RAILS_ENV'] == 'development'
  # 确保此行被注释或设置为false
  # preload_app!
end

preload_app!会在启动时预加载所有代码,导致后续修改无法自动重载。

3. 修复WSL环境下的文件监听问题

从服务器路径/mnt/c判断你正在使用WSL环境,默认的ActiveSupport::FileUpdateChecker在WSL中可能无法正确监听Windows文件系统的变化,可改用Listen gem:

  • 在Gemfile的development组添加依赖:
    group :development do
      gem 'listen'
    end
    
  • 执行bundle install安装依赖
  • 修改config/environments/development.rb中的文件监视器配置:
    config.file_watcher = Listen.to(Rails.root, wait_for_delay: 1, latency: 0.25) do |modified, added, removed|
      Rails.application.reload_routes!
      Rails.application.reload!
    end
    

4. 清除临时文件

运行命令清除Rails临时目录的缓存文件:

rails tmp:clear

5. 验证自动重载基础配置

确认config/environments/development.rb中的以下配置无误:

config.cache_classes = false
config.eager_load = false
config.action_controller.perform_caching = false
config.cache_store = :null_store

这些是开发环境自动重载的核心配置,确保未被错误修改。


内容的提问来源于stack exchange,提问作者Monroe Mann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 04:01:19