Laravel 5.2一些路线不起作用

时间:2016-08-29 19:18:32

标签: laravel laravel-5.2

我有这条路线:

Route::get('/sites', 'SitesController@index');

当我运行http://localhost:8880/sites时,它会响应:
浏览器响应(404错误):在此服务器上找不到请求的资源/站点。
终端响应:无效请求(意外EOF)
当我改变路线:

Route::get('/premium-sites', 'SitesController@index');

在我的浏览器中运行它     http://localhost:8880/premium-sites。 一切都像魅力一样。
我不会在这条路线(/ sites)和其他任何地方使用 我拥有的所有其他20条路线,除此之外工作正常。
我无法理解这是什么类型的错误,我无法找到解决问题的方法。

更新
这是我的路线列表

+--------+----------+-------------------+-----------------+-------------------------------------------------+------------+
| Domain | Method   | URI               | Name            | Action                                          | Middleware |
+--------+----------+-------------------+-----------------+-------------------------------------------------+------------+
|        | GET|HEAD | categories/{type} | categories.show | App\Http\Controllers\CategoriesController@index | web        |
|        | GET|HEAD | sites             | sites.show      | App\Http\Controllers\SitesController@index      | web        |
+--------+----------+-------------------+-----------------+-------------------------------------------------+------------+

我也改变了这条路线:

Route::get('/sites', [
    'as'   => 'sites.show',
    'uses' => 'SitesController@index'
]);

和我的控制器:

public function index()
{
    return 'test route';
}


回应是: enter image description here
终端响应:

[Tue Aug 30 01:56:15 2016] ::1:61591 [404]: /sites - No such file or directory
[Tue Aug 30 01:56:15 2016] ::1:61593 [200]: /favicon.ico
[Tue Aug 30 01:56:38 2016] ::1:61594 Invalid request (Unexpected EOF)

3 个答案:

答案 0 :(得分:1)

似乎某个路径文件中某处可能存在某些冲突。这是我的设置,它工作得很好。

routes.php文件

refresh()

路线:列表

Route::group(['middleware' => ['web']], function () {
    Route::get('/sites', 'SitesController@index');
});

这是我的控制器

php artisan route:list
+--------+----------+-------+------+--------------------------------------------+------------+
| Domain | Method   | URI   | Name | Action                                     | Middleware |
+--------+----------+-------+------+--------------------------------------------+------------+
|        | GET|HEAD | sites |      | App\Http\Controllers\SitesController@index | web        |
+--------+----------+-------+------+--------------------------------------------+------------+

要调试这个,我会从<?php namespace App\Http\Controllers; class SitesController extends Controller { public function index() { return 'Test Route'; } } 开始,看看你是否可以在路线上查看发生了什么并跟踪跟踪。如果您没有设置xdebug,请注释除xdebug路由以外的所有路由,然后查看它是否有效。如果是这样,你的其他一条路线就会挡路。首先逐一取消注释路径或逐组取消注释,当错误重新出现时,你就越近了。

答案 1 :(得分:1)

这个答案我可能迟到了。无论如何对某人有用。

前几天有这个问题,我的原因是由于存在文件夹名称&#34; X&#34;在公共目录中,类似于路线名称&#34; X&#34;。

很可能你有一个名为&#34; sites&#34;在公共目录中,重命名路由文件中的那个或

答案 2 :(得分:0)

可能涉及Route::get('/sites', 'SitesController@index');

更好地使用这条路线:

// Sites
Route::resource('/sites', 'SitesController');

例如路线:

// Home
Route::resource('/home', 'HomeController');

有:

 GET|HEAD  | home                | home.index     | App\Http\Controllers\HomeController@index  
POST       | home                | home.store     | App\Http\Controllers\HomeController@store   
GET|HEAD   | home/create         | home.create    | App\Http\Controllers\HomeController@create  
DELETE     | home/{home}         | home.destroy   | App\Http\Controllers\HomeController@destroy
PUT|PATCH  | home/{home}         | home.update    | App\Http\Controllers\HomeController@update  
GET|HEAD   | home/{home}         | home.show      | App\Http\Controllers\HomeController@show    
GET|HEAD   | home/{home}/edit    | home.edit      | App\Http\Controllers\HomeController@edit