从Laravel到Vue路由器的URL路由(找不到页面



我正在使用Laravel 5.4和vue-js 2.4

拉维尔路线

Route::get('/{component?}', 'HomeController@index');

首页控制器

public function index()
{
return view('welcome');
}

Vue 路由器

const routes = [
{ path: '/', name: 'myspaces', component: myspaces},
{ path: '/inspiration', component: inspiration },
];

当我单击此按钮时,关于组件显示得很好,网址 example.com/myspaces

<router-link to="/myspaces">myspaces</router-link>

欢迎光临.php

<div id="app">
<v-app>
<v-content>
@Guest
<navigationloggedout></navigationloggedout>
<p>Not logged in</p>
<router-view></router-view>
@else
<navigationloggedin></navigationloggedin>
<p>Logged in</p>
<router-view></router-view>
@endGuest
</v-content>
</v-app>
</div>

问题当我直接输入 example.com/myspaces 时。它实际上并没有加载我想要的页面,它只是加载带有<router-view></router-view>welcome.blade.php。虽然我希望它加载特定的组件myspaces.

我怎样才能找到一种方法来直接访问我的 vue 网址,就像它们是普通链接一样?Vue 通常与 example.com/#/myspaces 一起使用。您可以使用mode: history将其删除,但是如果没有 404 错误,您实际上永远无法直接转到链接。

请尝试以下操作:

Route::get('/{component?}', function () {
return view('welcome');
})->where('component', '[/w.-]*');

为了简单起见,我刚刚用匿名函数替换了HomeController@index

最新更新