开发Rails 7应用:哪些文件修改需重启服务器?哪些不会自动重载?
Rails 7开发环境:哪些修改要重启服务器,哪些会自动重载?
一、必须重启服务器的情况
- 核心配置文件
config/application.rb:全局应用的基础配置,比如指定加载的gem、自定义框架扩展config/environments/development.rb等环境配置文件:像缓存开关、日志级别这类环境专属的核心设置config/boot.rb、config/spring.rb:和应用启动流程绑定的配置文件- Puma/Unicorn等服务器配置(
config/puma.rb):修改进程数、端口这类服务器参数必须重启
- 初始化脚本
config/initializers/下的所有.rb文件:比如gem的初始化配置、全局常量定义、自定义Ruby类扩展,这些都是应用启动时一次性加载的,改了必须重启
- lib目录文件(默认情况):Rails默认不会把lib目录加入自动加载路径,所以修改这里的文件后,必须重启服务器才能让变更生效。如果你手动在
config/application.rb里把lib加到config.autoload_paths或config.eager_load_paths里,部分lib下的文件可能能自动重载,但如果是顶级常量或者启动时就加载的代码,还是得重启 - Gem依赖变更:修改
Gemfile或者更新Gemfile.lock(新增、删除gem,或者改gem版本),必须重启让Rails加载新的依赖 - 数据库配置:修改
config/database.yml后,虽然偶尔能通过重新连接生效,但为了避免连接异常,最好重启服务器 - 全局常量/启动时加载的代码:如果是在初始化阶段就加载的全局常量、模块,修改后必须重启才能更新
二、无需重启,自动重载的情况
- 应用核心业务代码
app/controllers/下的所有控制器:改完刷新页面就生效app/models/下的模型:包括关联、验证、方法修改,自动重载app/views/下的视图文件(erb、haml等):改完刷新就能看到变化app/helpers/辅助方法、app/services/服务类、app/jobs/后台任务:这些都在默认自动加载路径里,修改后自动生效
- 部分配置文件
config/routes.rb:路由修改后,开发环境会自动重载,刷新页面就能用新路由config/locales/下的国际化翻译文件:改完刷新页面就能看到新的翻译内容
- 静态资源文件
app/assets/下的CSS、JS、图片:修改后刷新页面即可生效(用webpacker或jsbundling-rails的话,默认开发环境也支持热重载)
内容的提问来源于stack exchange,提问作者pedz
相关产品推荐
相关产品推荐

