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