Drupal 10自定义模块Controller与路由配置导致404问题求助
问题解决:Drupal 10自定义模块404错误及代码格式修复
一、代码块格式混乱的解决方法
要让代码正常显示为代码块,需严格遵循以下规则:
- 每个代码块单独用
+对应语言标识(如`php`、`yaml`)开头,结尾 - 代码内容保持完整结构,避免只粘贴片段
- 确保代码前后无多余空格或换行干扰标记识别
二、自定义模块404错误的修复步骤
1. 修正Controller代码(路径:modules/custom/mymodule/src/Controller/FirstController.php)
你提供的Controller代码缺少命名空间、类定义和方法结构,且存在语法错误,修正后完整代码如下:
<?php namespace Drupal\mymodule\Controller; use Drupal\Core\Controller\ControllerBase; /** * 提供简单内容的控制器类 */ class FirstController extends ControllerBase { /** * 返回自定义内容的方法 */ public function simpleContent() { return [ '#markup' => $this->t('Hello Drupal World. Time flies like an arrow, fruit flies like a banana.'), ]; } }
2. 修正路由代码(路径:modules/custom/mymodule/mymodule.routing.yml)
你的路由文件存在引号未闭合、缩进错误的问题,修正后代码:
mymodule.simplecontent: path: '/mycustompath' defaults: _controller: 'Drupal\mymodule\Controller\FirstController::simpleContent' _title: 'Simplicity is the ultimate sophistication' requirements: _permission: 'access content'
3. 确保模块基础配置完整
模块根目录下必须存在mymodule.info.yml文件,内容示例:
name: '我的自定义模块' type: module description: '用于学习Drupal开发的自定义模块' core_version_requirement: ^10 package: 自定义
4. 刷新Drupal缓存
完成代码修正后,必须刷新缓存才能让新路由生效:
- 后台操作:访问
/admin/config/development/performance,点击“清空所有缓存” - 命令行操作:执行
drush cr
5. 验证模块状态
进入后台/admin/modules,确认你的自定义模块已启用。
内容的提问来源于stack exchange,提问作者vlevasseur01
相关产品推荐
相关产品推荐

