Laravel + Vue JS 路由显示找不到页面

Posted

技术标签:

【中文标题】Laravel + Vue JS 路由显示找不到页面【英文标题】:Laravel + Vue JS Routing shows page not found 【发布时间】:2019-01-09 16:54:33 【问题描述】:

我按照这个教程https://laraveldaily.com/quick-start-laravel-5-5-vue-js-simple-crud-project/

但是,当我加载: localhost/admin/companies 时,我得到 page not found 。

我也试着改成这个

const router = new VueRouter(
 routes: [
    path: '/admin/companies', component: CompaniesController 
 ]
)

但我在 VueRouter( 我不明白为什么。有人可以帮忙吗?

谢谢!

【问题讨论】:

不是 laravel 错误。看起来您在 Vue 代码上犯了语法错误。让我看看你的完整代码。 @Ts8060 您想看哪个部分?我会在上面补充。我将路线更改为 Route::get('/admin/companies', 'Api\V1\CompaniesController@index');它有效。不知道为什么上面使用 VueRouter 不起作用。 【参考方案1】:

Vue 路由器不会重新加载页面。 Vue 路由器不像 Laravel 路由器那样工作。每当 Vue 路由发生变化时,它所做的一切就是将不同的组件安装到特定区域。该区域由预定义的 router-view 元素定义。它会根据 Vue 路由的变化来挂载组件。

刀片

<div class='box'>
    <router-view name="content-viewport"></router-view>
</div>

Vue

const router = new VueRouter(
  routes: [
     path: '/admin/companies', components: "content-viewport" : CompaniesController 
  ]
);

现在,当您转到 domain#/admin/companies 时,Vue 将在 'content-viewport' 中安装组件 CompaniesController

【讨论】:

谢谢!设法解决了这个问题,但你给了我需要的解决方案。【参考方案2】:

在 Vue js 中 用于从 vue 端导航页面。

在路由中,文件路由在这里定义。

const router = new VueRouter(

  routes: [
     path: '/admin/companies', redirect:  name: 'CompaniesController'  ,
  ],
)


<router-link to="/about">Go</router-link>

然后调用 localhost/admin/companies 然后页面将加载。

【讨论】:

以上是关于Laravel + Vue JS 路由显示找不到页面的主要内容,如果未能解决你的问题,请参考以下文章

laravel + mix + vue 路由器错误:找不到导出'createStaticVNode'(导入为'_createStaticVNode')

Vue-Router 不在单页应用程序中重新路由(Vue/Laravel)

如果在 Laravel 5.1 中找不到路由,则显示 404 页面

通过修改 vue.config.js 在 Vue.js MPA(多页应用程序)中提供自定义“找不到页面”404 页面?

Laravel 找不到 Vue 实例

在提交 Vue js 和 Laravel 时找不到 POST 404?