我正在使用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。