You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Jetstream使用Inertia配置路由找不到Vue文件如何解决

问题原因

你遇到的报错核心是路由传入的Inertia组件路径与实际文件的存放目录结构不匹配。
控制台抛出Cannot find module './BlogList.vue'的原因是:Inertia的组件解析逻辑会按照你配置的根路径+路由传入的组件名拼接查找文件,你将BlogList.vue存放在Blog子目录下,但路由里只传了BlogList作为组件名,相当于直接去根组件目录下查找同名文件,自然匹配失败。

解决方案

你可以根据自己的目录规划选择以下任意一种方案:

方案1:调整路由参数(推荐,符合默认配置规范)

Laravel Jetstream搭配Inertia的默认组件根目录为/resources/js/Pages/,你可以先做以下调整:

  • 把Blog目录移动到Pages目录下,最终文件路径为/resources/js/Pages/Blog/BlogList.vue
  • 修改路由代码,加上子目录前缀:
Route::inertia('/bloglist', 'Blog/BlogList');

方案2:自定义组件解析路径(适合不想调整目录的场景)

如果你确实需要把组件存放在/resources/js/Blog/目录下,不需要移动文件,直接修改resources/js/app.js中的Inertia resolve配置即可:
找到默认的resolve配置:

resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue'))

修改为匹配Blog目录的规则:

resolve: (name) => resolvePageComponent(`./Blog/${name}.vue`, import.meta.glob('./Blog/**/*.vue'))

修改后你原来的路由代码Route::inertia('/bloglist', 'BlogList');可直接生效。

验证操作

任意方案修改完成后,重新执行前端编译命令npm run dev,刷新页面即可正常加载。


内容的提问来源于stack exchange,提问作者ArcticMediaRyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:54:01