路由返回404,无论被请求的资源是什么- Laravel/Inertis.js -由路由排序引起 &



我在web.php中有这个路由

Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');

这是CRMController

public function addProject(){
return Inertia::render('CRM/Projects/AddProjectPage');
}

无论我告诉函数渲染什么资源,它都会返回404

我肯定资源存在于CRM/Projects/AddProjectPage,我已经尝试了其他资源,这些资源也在网站上有工作链接,所以它们肯定在那里,它返回给我一个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        | AppHttpControllersCRMController@addProject               | web        

可能是一个明显的事情,但你试过运行

php artisan clear-compiled 
composer dump-autoload
php artisan optimize 

并确保你有npm run watch运行,而你正在使用惯性和Laravel。

您可以尝试运行下面的php artisan命令来使用Ziggy生成路由

php artisan ziggy:generate

它会将生成的路由存储在这里

resources/js/ziggy.js

参考:https://github.com/tighten/ziggy

问题是路由排序,由于我提供的信息不充分,无法解决。

这条路线

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');

所以由于路由解析是一个有序的东西,它给我带来了问题,我想说,为了最佳实践,所有的路由都在检查之后的传入参数你的其他路由不接受参数

一样
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');

相关内容

  • 没有找到相关文章

最新更新