Laravel 5.3 NotFoundHttpException

Posted

技术标签:

【中文标题】Laravel 5.3 NotFoundHttpException【英文标题】: 【发布时间】:2017-01-23 15:22:26 【问题描述】:

我正在尝试设置一个 Laravel 5.3 项目。我已经创建了项目并启动“localhost//public”显示欢迎屏幕就好了。

在 web.php 文件中添加测试条目时,如

Route::get('about', function () 
    return view('welcome');
);

然后尝试以 'localhost//public/about' 的身份访问它,我在 RouteCollection.php 第 161 行得到了这个 NotFoundHttpException:错误。我真的很困惑到底出了什么问题。

在 5.2 版本中,使用 routes.php,它工作得非常好。

注册,

埃里克

【问题讨论】:

为什么是这个?localhost//public/about 为什么不只是 localhost/public/about 为时已晚,但对于看到这一点的其他人来说,很可能是 RouteServiceProvider 中的某些内容没有根据 Laravel 5.3 的更改进行更改。将该文件与 laravel/laravel 存储库中的文件进行比较。 【参考方案1】:

NotFoundHttpException 表示 Laravel 找不到请求的路由。因此,您正在尝试访问不存在的东西,这就是它抛出 NotFoundHttpException 的原因。

尝试访问您的路线,例如

localhost/public/about

【讨论】:

【参考方案2】:

当使用工匠路线时,这是一个奇怪的故事:列出关于整齐地弹出。但是,当通过 Chrome 访问时,我无法加载它。我已经删除了整个 www 目录并重新开始。现在它起作用了。一定是有什么东西在身边徘徊。

谢谢,

埃里克

【讨论】:

【参考方案3】:

您可以尝试在 app\Providers\RouteServiceProvider.php 中为 web 路由添加一个“公共”前缀,如下所示:

    protected function mapWebRoutes()
    
        Route::group([
            'middleware' => 'web',
            'namespace' => $this->namespace,
            'prefix' => 'public',
        ], function ($router) 
             require base_path('routes/web.php');
        );
    

【讨论】:

以上是关于Laravel 5.3 NotFoundHttpException的主要内容,如果未能解决你的问题,请参考以下文章

laravel 无法打开输入文件:artisan (5.3)

Laravel 5.3 密码代理自定义

从 Laravel 5.3 升级到 Laravel 5.4 并且空字段转换为 NULL

laravel 路由重定向问题(laravel 5.3)

Laravel 5.3 用户模型中的 CanResetPassword

Laravel 5.2 或 5.3:如何正确实施检查会话是不是已登录