Laravel 5 - RouteCollection.php 第 143 行中的 NotFoundHttpException
Posted
技术标签:
【中文标题】Laravel 5 - RouteCollection.php 第 143 行中的 NotFoundHttpException【英文标题】:Laravel 5 - NotFoundHttpException in RouteCollection.php line 143 【发布时间】:2015-10-17 08:27:27 【问题描述】:我得到这个错误:
Sorry, the page you are looking for could not be found.
1/1
NotFoundHttpException in RouteCollection.php line 143:
in RouteCollection.php line 143
at RouteCollection->match(object(Request)) in Router.php line 746
at Router->findRoute(object(Request)) in Router.php line 655
at Router->dispatchToRoute(object(Request)) in Router.php line 631
at Router->dispatch(object(Request)) in Kernel.php line 229
at Kernel->Illuminate\Foundation\Http\closure(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\closure(object(Request)) in VerifyCsrfToken.php line 50
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\closure(object(Request)) in ShareErrorsFromSession.php line 54
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\closure(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\closure(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\closure(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\closure(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\closure(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 118
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 86
at Kernel->handle(object(Request)) in index.php line 64
我真的不明白这是什么问题。 我运行以下命令:
composer dump-autoload
php artisan clear-compiled
php artisan route:clear
没有任何效果。
Laravel 安装在一个子目录(public_html/ecodryer)下,指向公共目录的指针由 .htaccess 配置:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %HTTP_HOST ^landings.yaza.co.il/ecodryer$ [NC,OR]
RewriteCond %REQUEST_URI !ecodryer/public/
RewriteRule (.*) /ecodryer/public/$1 [L]
</IfModule>
路线文件:
<?php
Route::get('/', function ()
return view('pages.site.main');
);
有什么建议吗?
先谢谢了!
【问题讨论】:
请分享您的 routes.php 文件。您正在到达您尚未定义的路线。 @hhsadiq 我已经添加了 routes.php 文件。 发布你的控制器页面.. 【参考方案1】:这是您的 routes.php 声明的问题,请确保您已为您尝试访问的 url 定义了一个路由。例如:
Route::get('/', 'PageController@index');
你可以在 Laravel 网站上找到更详细的语法: http://laravel.com/docs/5.1/routing
编辑:
根据您的 routes.php - 更改您的路线以反映:
Route::get('ecodryer', function ()
return view('pages.site.main');
);
【讨论】:
完美!这就是问题所在,我已经按照您的建议更改了路线,现在可以使用了 :) 谢谢!【参考方案2】:有时这种问题来自服务器的文件夹结构,例如 url 就像localhost/project/
。尝试为您的本地项目创建一个虚拟主机。它还提供了一些额外的好处。
How to create a virtual host on wamp
【讨论】:
【参考方案3】:对于那些在 laravel 版本 5.4.10(或@Chen Alon 提到的 5.3 及更高版本)中遇到类似错误的人,routes.php 文件默认已被删除,如果您仍想使用它,则只需创建文件即可不够。我们需要在“map”函数内的 RouteServiceProvider.php 文件中包含文件。在 map 函数中添加以下行为我解决了这个问题:
require app_path('Http/routes.php');
【讨论】:
在 Laravel 5.3 中引入了 routes.php 文件的变化。只需像使用之前的HTTP/routes.php
文件一样使用 routes/web.php
。【参考方案4】:
index.php 有时会出现这种问题。通过以下方式测试您的路线:
路由/index.php
或
yourdomain/public/Route/index.php
您可以通过配置 apache 和虚拟主机从 URL 中删除 index.php。 this link可以帮到你。
【讨论】:
【参考方案5】:Route::get('hello', 'Hello@index');
它应该在 /projectname/routes/web.php 下
【讨论】:
以上是关于Laravel 5 - RouteCollection.php 第 143 行中的 NotFoundHttpException的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5 和 Laravel 5.1 “找不到类‘模型名称’”,有更好的解决方案吗?
从 Laravel 5.3 升级到 Laravel 5.4 并且空字段转换为 NULL
Laravel 5.5:laravel.log 无法打开:权限被拒绝
从 laravel 5 升级到 laravel 5.5 导致错误参数 1 传递给 App\Exceptions\Handler::report()