【问题标题】:Not Found (#404) in Yii2在 Yii2 中未找到 (#404)
【发布时间】:2016-04-22 16:25:59
【问题描述】:

我从 Yii2 开始,已经安装了 XAMPP,在 Yii2 项目模板的帮助下创建了一个名为 'yiidemo' 的基本项目。然后通过此 URL http://localhost:8080/yiidemo/web/index.php?r=gii 访问 Gii 以生成示例控制器“问候”,但是当我单击“尝试”链接时,它显示以下错误消息(网址为 http://localhost:8080/yiidemo/web/index.php?r=greeting):

未找到 (#404)

这是控制器\greetingController 的代码:

<?php

namespace app\controllers;

class greetingController extends \yii\web\Controller
{
    public function actionIndex()
    {
        return $this->render('views/index');
    }

}

这是views\greeting\index.php 代码:

<?php
/* @var $this yii\web\View */
?>
<h1>greeting/index</h1>

<p>
    You may change the content of this page by modifying
    the file <code><?= __FILE__; ?></code>.
</p>

任何人都可以建议如何使用 Yii2 hello world 示例。

【问题讨论】:

    标签: php xampp localhost yii2


    【解决方案1】:

    Controllers 必须全部为CamelCase 并以大写字母开头。所以在你的情况下,GreetingController(类和文件)。

    在你的行动中使用:

    return $this->render('index');
    

    详细了解如何使用此方法here

    【讨论】:

    • 感谢@Clyff,它有效。我只是错过了 CamelCase。
    【解决方案2】:

    检查您的 apache 配置文件并确保 web 目录是否允许覆盖

    你可以在这里找到你的ubuntu系统中的配置文件

    sudo nano /etc/apache2/sites-enabled/000-default.conf
    

    很少有Linux系统有配置文件

     sudo nano /etc/httpd/conf/httpd.conf
    

    只需检查您的配置文件并替换 AllowOverride None 为 AllowOverride All

    例如

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    

    保存文件更改后,只需重启 Apache 服务器

    【讨论】:

      【解决方案3】:

      检查文件是否保存为 GreetingsController.php 而不仅仅是 GreetingsController(没有 .php) 虽然这不是您犯的错误,但它仍然会产生相同的错误消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多