【发布时间】:2017-05-09 07:09:58
【问题描述】:
我在 XAMPP 5.6.15 中使用 Laravel 5.3.28、PHP 5.6.15
在我的文件 routes\web.php 我添加
Route::get('/about', 'DefaultController@about');
(控制器、方法和视图存在)
php artisan route:list 返回
+--------+----------+------------+------+----------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+------------+------+----------------------------------------------+--------------+
| | GET|HEAD | / | | App\Http\Controllers\DefaultController@home | web |
| | GET|HEAD | about | | App\Http\Controllers\DefaultController@about | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
+--------+----------+------------+------+----------------------------------------------+--------------+
当我尝试浏览时,会引发 Not Found 异常。在论坛中查找错误,我了解这是由于 Laravel 或 .htaccess 文件的配置不正确造成的。 我不明白如何正确解决问题以及为什么在documentation 中没有提到需要此文件。 感谢大家的任何帮助或建议。
更新
这里按照要求显示错误信息
RouteCollection.php 第 161 行中的 NotFoundHttpException:
in RouteCollection.php line 161
at RouteCollection->match(object(Request)) in Router.php line 766
at Router->findRoute(object(Request)) in Router.php line 621
at Router->dispatchToRoute(object(Request)) in Router.php line 607
at Router->dispatch(object(Request)) in Kernel.php line 268
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Kernel.php line 150
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 117
at Kernel->handle(object(Request)) in index.php line 54
【问题讨论】:
-
你能发布你得到的整个 Laravel 错误吗?
-
您尝试
/about并且其他路线是否有效? -
该文件是 laravel 自带的,位于 public 文件夹中。那应该是您的文档根目录。除此之外检查 mod_rewrite 是否开启
-
routes\web.php是什么?也许我弄错了,但 Laravel 5.3 中的路由没有定义在app\Http\routes.php -
@DainisAbols 从 5.3 开始,Laravel 使用 routes/web.php 进行 Web 请求,使用 routes/api.php 进行 api 请求。