我有这条路线:
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';
}
[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)
答案 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