Laravel 为现有路线抛出 404
Laravel throwing 404 for an existing route
谁能帮我理解这些路线有什么问题:-
从这些路由列表中,第三个和最后一个returns 404。控制器没有问题。当我 运行 php artisan route:list
.
时,它们会按预期显示
Route::get('/uploads', 'ImageController@adminIndex')->name('admin.images.index');
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');
Route::get('/uploads/request', 'ImageController@imageRequests')->name('admin.images.request');
Route::get('/uploads/request/{image}', 'ImageController@individualRequest')->name('admin.images.request.individual');
Route::post('/uploads/accept', 'ImageController@acceptImage')->name('admin.accept.image');
Route::post('/uploads/decline/', 'ImageController@declineImage')->name('admin.decline.image');
Route::get('/uploads/all', 'ImageController@index')->name('admin.images.list');
让我感到困惑的是,将这两条路线的 uploads 更改为 images 解决了问题并且它们工作得很好。
Route::get('/uploads', 'ImageController@adminIndex')->name('admin.images.index');
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');
Route::get('/images/request', 'ImageController@imageRequests')->name('admin.images.request');
Route::get('/uploads/request/{image}', 'ImageController@individualRequest')->name('admin.images.request.individual');
Route::post('/uploads/accept', 'ImageController@acceptImage')->name('admin.accept.image');
Route::post('/uploads/decline/', 'ImageController@declineImage')->name('admin.decline.image');
Route::get('/images/all', 'ImageController@index')->name('admin.images.list');
我试过了php artisan route:clear
。
此外,public 目录中没有文件夹会产生任何冲突。
注意:所有路线都分组在
Route::group(['prefix' => 'admin', 'middleware' => 'role:administrator|auth'], function () {
// Other routes in this group are working just fine. No issues.
});
感谢帮助。
请将路由器移到列表的最后:
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');
因为它包含 Route::get('/uploads/request'
和 Route::get('/uploads/all'
然后它会覆盖这两个路由器
所以路由器列表代码:
Route::get('/uploads', 'ImageController@adminIndex')->name('admin.images.index');
Route::get('/uploads/request', 'ImageController@imageRequests')->name('admin.images.request');
Route::get('/uploads/request/{image}', 'ImageController@individualRequest')->name('admin.images.request.individual');
Route::post('/uploads/accept', 'ImageController@acceptImage')->name('admin.accept.image');
Route::post('/uploads/decline/', 'ImageController@declineImage')->name('admin.decline.image');
Route::get('/uploads/all', 'ImageController@index')->name('admin.images.list');
// move to last
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');
谁能帮我理解这些路线有什么问题:-
从这些路由列表中,第三个和最后一个returns 404。控制器没有问题。当我 运行 php artisan route:list
.
Route::get('/uploads', 'ImageController@adminIndex')->name('admin.images.index');
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');
Route::get('/uploads/request', 'ImageController@imageRequests')->name('admin.images.request');
Route::get('/uploads/request/{image}', 'ImageController@individualRequest')->name('admin.images.request.individual');
Route::post('/uploads/accept', 'ImageController@acceptImage')->name('admin.accept.image');
Route::post('/uploads/decline/', 'ImageController@declineImage')->name('admin.decline.image');
Route::get('/uploads/all', 'ImageController@index')->name('admin.images.list');
让我感到困惑的是,将这两条路线的 uploads 更改为 images 解决了问题并且它们工作得很好。
Route::get('/uploads', 'ImageController@adminIndex')->name('admin.images.index');
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');
Route::get('/images/request', 'ImageController@imageRequests')->name('admin.images.request');
Route::get('/uploads/request/{image}', 'ImageController@individualRequest')->name('admin.images.request.individual');
Route::post('/uploads/accept', 'ImageController@acceptImage')->name('admin.accept.image');
Route::post('/uploads/decline/', 'ImageController@declineImage')->name('admin.decline.image');
Route::get('/images/all', 'ImageController@index')->name('admin.images.list');
我试过了php artisan route:clear
。
此外,public 目录中没有文件夹会产生任何冲突。
注意:所有路线都分组在
Route::group(['prefix' => 'admin', 'middleware' => 'role:administrator|auth'], function () {
// Other routes in this group are working just fine. No issues.
});
感谢帮助。
请将路由器移到列表的最后:
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');
因为它包含 Route::get('/uploads/request'
和 Route::get('/uploads/all'
然后它会覆盖这两个路由器
所以路由器列表代码:
Route::get('/uploads', 'ImageController@adminIndex')->name('admin.images.index');
Route::get('/uploads/request', 'ImageController@imageRequests')->name('admin.images.request');
Route::get('/uploads/request/{image}', 'ImageController@individualRequest')->name('admin.images.request.individual');
Route::post('/uploads/accept', 'ImageController@acceptImage')->name('admin.accept.image');
Route::post('/uploads/decline/', 'ImageController@declineImage')->name('admin.decline.image');
Route::get('/uploads/all', 'ImageController@index')->name('admin.images.list');
// move to last
Route::get('/uploads/{image}', 'ImageController@adminShow')->name('admin.image.indivisual');