Redmine插件修改代码需重启生效:如何实现即时重载?
Redmine插件修改init.rb即时生效方案
修正配置位置:别把
config.reload_plugins = true加在根目录的environment.rb里,得放到config/environments/development.rb中。Redmine的环境配置分环境生效,开发环境的配置优先级高于全局配置,之前的位置不对所以没起作用。手动触发插件重载:init.rb是插件的初始化文件,Redmine默认启动时只加载一次。就算开了插件重载,有些初始化逻辑(比如注册菜单、添加权限、配置路由)也不会自动刷新。这时可以打开Redmine控制台(运行
rails c),执行:Redmine::PluginLoader.reload执行完刷新
localhost:9292/admin/plugins就能看到变更。用工具自动监听重载:可以用
guard工具监听文件变化,自动触发重载。先安装guard,然后在项目根目录创建Guardfile,写入:guard :shell do watch(%r{plugins/你的插件名/init\.rb}) do `rails runner "Redmine::PluginLoader.reload"` end end启动guard后,每次修改保存init.rb都会自动执行重载操作。
注意版本兼容性:如果用的是旧版Redmine,
config.reload_plugins可能有兼容性问题。试试升级到最新稳定版的开发分支,或者手动调整插件加载的初始化逻辑,确保重载时能重新解析init.rb。
内容的提问来源于stack exchange,提问作者Abdul Rafey
相关产品推荐
相关产品推荐

