无论请求的资源如何,路由都返回 404 - Laravel/Inertis.js - 由路由排序引起
Route returning 404 regardless the resource being requested - Laravel/Inertis.js - caused by route ordering
我在web.php
中有这条路线
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
这是在CRMController
class
public function addProject(){
return Inertia::render('CRM/Projects/AddProjectPage');
}
无论资源如何,我都会告诉函数渲染它 returns 404
我确信该资源存在于 CRM/Projects/AddProjectPage
并且我已经尝试使用其他资源,这些资源在站点中也有工作链接所以它们肯定在那里而且它 returns 无论如何我都是 404
在 Vue 组件中这样引用路由
<inertia-link :href="route('crm.addProject')">
Add Project
</inertia-link>
我一定是遗漏了一些明显的东西,多一双眼睛会有所帮助,提前谢谢你
编辑:
控制台中的错误是
Failed to load resource: the server responded with a status of 404 (Not Found) projects/add:1
编辑:
php artisan route:list
的输出
| | GET|HEAD | crm/projects/add | crm.addProject | App\Http\Controllers\CRMController@addProject | web
也许是显而易见的事情,但你试过了吗运行
php artisan clear-compiled
composer dump-autoload
php artisan optimize
并确保在使用 Inertia 和 Laravel.
时有 npm run watch
运行
您可以尝试使用下面的 运行 php artisan
命令来使用 Ziggy
生成路由
php artisan ziggy:generate
它将在此处存储您生成的路线
resources/js/ziggy.js
由于代表我提供的信息不充分而无法解决的问题是路线排序
这条路线
Route::get('crm/projects/{project:id}', [CRMController::class, 'editProjectPage'])->name('crm.project')->middleware('auth');
之前声明过
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
所以由于路由解析是有序的事情,它给我带来了问题,我会说最好的做法是让所有路由都检查传递的参数 after 你的其他路由没有接受参数
像这样
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
Route::get('crm/projects/{project:id}', [CRMController::class, 'editProjectPage'])->name('crm.project')->middleware('auth');
我在web.php
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
这是在CRMController
class
public function addProject(){
return Inertia::render('CRM/Projects/AddProjectPage');
}
无论资源如何,我都会告诉函数渲染它 returns 404
我确信该资源存在于 CRM/Projects/AddProjectPage
并且我已经尝试使用其他资源,这些资源在站点中也有工作链接所以它们肯定在那里而且它 returns 无论如何我都是 404
在 Vue 组件中这样引用路由
<inertia-link :href="route('crm.addProject')">
Add Project
</inertia-link>
我一定是遗漏了一些明显的东西,多一双眼睛会有所帮助,提前谢谢你
编辑: 控制台中的错误是
Failed to load resource: the server responded with a status of 404 (Not Found) projects/add:1
编辑:
php artisan route:list
| | GET|HEAD | crm/projects/add | crm.addProject | App\Http\Controllers\CRMController@addProject | web
也许是显而易见的事情,但你试过了吗运行
php artisan clear-compiled
composer dump-autoload
php artisan optimize
并确保在使用 Inertia 和 Laravel.
时有npm run watch
运行
您可以尝试使用下面的 运行 php artisan
命令来使用 Ziggy
php artisan ziggy:generate
它将在此处存储您生成的路线
resources/js/ziggy.js
由于代表我提供的信息不充分而无法解决的问题是路线排序
这条路线
Route::get('crm/projects/{project:id}', [CRMController::class, 'editProjectPage'])->name('crm.project')->middleware('auth');
之前声明过
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
所以由于路由解析是有序的事情,它给我带来了问题,我会说最好的做法是让所有路由都检查传递的参数 after 你的其他路由没有接受参数
像这样
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
Route::get('crm/projects/{project:id}', [CRMController::class, 'editProjectPage'])->name('crm.project')->middleware('auth');