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

Drupal 9.2.15升级至9.3.15后无法访问/admin/modules等管理路径

Drupal 9.2.15升级9.3.15后后台路由报错修复

问题原因

这是Drupal 9.3版本调整User模块路由结构导致的典型升级兼容问题,报错里提到的两个路由在9.3版本里都做了调整:

  • user.admin_permissions.module 已废弃,原模块权限筛选功能整合到了user.admin_permissions主路由下
  • user.role.settings 路由标识变更,旧标识不再注册到路由表
    触发场景只有三种:路由缓存没清干净、安装了不兼容9.3版本的模块(硬编码引用旧路由)、升级过程中核心文件缺损。

修复步骤

按顺序操作,每做完一步就访问报错页面验证,不用全跑完:

  1. 强制重建路由缓存
    哪怕你之前跑过drush updb,只要没单独重建路由缓存就可能出这个问题,依次执行命令:
    drush cr
    drush ev '\Drupal::service("router.builder")->rebuild();'
    
    要是Drush命令也报错,直接删sites/default/files/php/目录下所有内容,再访问站点会自动触发缓存重建。
  2. 升级不兼容的贡献模块/修复自定义模块
    清缓存还报错的话,90%的情况是你装的Admin Toolbar模块版本低于3.1.0,这个版本之前的模块硬编码了两个旧路由,直接执行命令升级即可:
    composer require drupal/admin_toolbar:^3.1
    drush cr
    
    如果不是Admin Toolbar的问题,直接在代码目录全局搜两个旧路由字符串,定位到引用的文件:
    grep -r "user.admin_permissions.module" modules/
    grep -r "user.role.settings" modules/
    
    找到对应自定义模块/贡献模块的引用位置,把旧路由替换成9.3对应的新路由即可:
    • 引用user.admin_permissions.module的地方替换为user.admin_permissions
    • 引用user.role.settings的地方替换为对应功能的新路由user.role_list
  3. 修复缺损的核心文件
    以上操作都无效的话,就是升级时核心路由文件没更新到位,执行scaffold命令重新拉取核心静态文件:
    composer drupal:scaffold
    drush cr
    

验证

修复完成后访问/admin/modules、/admin/people两个路径,页面正常加载、无500错误即为修复完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:06:40