在 Yii2 中添加新的 modules 后出现 404 错误,通常是由以下几个原因造成的:
1. 模块配置问题
确保在 config/web.php
中正确配置了模块:
php
'modules' => [
'your-module-id' => [
'class' => 'app\modules\your-module-id\Module',
],
],
2. 模块目录结构问题
检查模块的目录结构是否正确:
app/
modules/
your-module-id/
Module.php
controllers/
DefaultController.php
views/
default/
index.php
3. Module 类文件问题
确保 Module.php
文件存在且配置正确:
php
<?php
namespace app\modules\your-module-id;
class Module extends \yii\base\Module
{
public $controllerNamespace = 'app\modules\your-module-id\controllers';
public function init()
{
parent::init();
}
}
4. 控制器文件问题
确保控制器文件存在,例如 controllers/DefaultController.php
:
php
<?php
namespace app\modules\your-module-id\controllers;
use yii\web\Controller;
class DefaultController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
}
5. URL 规则配置
如果使用了自定义 URL 规则,确保在 urlManager
中正确配置:
php
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
// 其他规则
],
],
6. 访问路径检查
确认访问路径是否正确:
- 如果模块ID是
admin
,控制器是DefaultController
,动作是actionIndex
- 访问路径应该是:
/admin/default/index
或根据URL规则调整
7. 命名空间和类名检查
确保所有命名空间和类名正确无误,大小写敏感。
建议按以上顺序逐一检查,通常能解决 404 错误问题。