求可用的Drupal 9简单自定义模块zip压缩包,解决页面找不到报错
Drupal 9 极简可运行自定义模块开发说明
以下是可直接运行的自定义模块完整结构和代码,按要求配置后不会出现页面404问题:
- 模块根目录命名为
hello_custom,需放在Drupal根目录的modules/custom/路径下 - 模块包含3个核心文件,结构如下:
hello_custom.info.yml(模块识别配置文件,必填)hello_custom.routing.yml(路由配置文件,解决404问题的核心)src/Controller/HelloController.php(页面逻辑控制器文件)
1. hello_custom.info.yml 内容
name: 'Hello Custom Module' type: module description: 'Drupal 9 极简测试自定义模块' core_version_requirement: ^9 || ^10 package: 'Custom'
2. hello_custom.routing.yml 内容
hello_custom.hello: path: '/hello-custom' defaults: _controller: '\Drupal\hello_custom\Controller\HelloController::sayHello' _title: 'Hello Custom Module' requirements: _permission: 'access content'
3. HelloController.php 内容
先在hello_custom目录下新建src文件夹,再在src下新建Controller文件夹,最后在Controller文件夹内新建HelloController.php,内容如下:
<?php namespace Drupal\hello_custom\Controller; use Drupal\Core\Controller\ControllerBase; class HelloController extends ControllerBase { public function sayHello() { return [ '#markup' => '<p>自定义模块加载成功!这是你的第一个自定义页面。</p>', ]; } }
部署验证步骤
- 把整个
hello_custom文件夹按路径要求放置,或者将整个文件夹打包为zip后直接在Drupal后台「扩展」-「安装新模块」处上传安装 - 登录Drupal后台,进入「扩展」页面,找到
Hello Custom Module,勾选后点击安装 - 安装成功后清空全站缓存,访问站点地址加
/hello-custom路径即可正常打开页面
常见404问题排查要点
- yaml文件缩进必须用2个空格,不能用tab,否则Drupal无法识别配置
- 控制器的命名空间、类名、方法名必须和路由里配置的完全一致,大小写敏感
- 不要和现有系统路径、其他模块路径重复
内容的提问来源于stack exchange,提问作者Amaan 2228
相关产品推荐
相关产品推荐

