我正在使用Laravel 5.4和vue-js 2.4
拉威尔(Laravel)路线
Route::get('/{component?}', 'HomeController@index');
HomeController
public function index()
{
return view('welcome');
}
Vue路由器
const routes = [
{ path: '/', name: 'myspaces', component: myspaces},
{ path: '/inspiration', component: inspiration },
];
当我单击此按钮时,关于组件的显示会很好,URL为example.com/myspaces
<router-link to="/myspaces">myspaces</router-link>
welcome.blade.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时。它实际上并不会加载我想要的页面,而只是将welcome.blade.php
与<router-view></router-view>
一起加载。我希望它加载特定的组件myspaces
。
如何找到直接访问我的Vue网址的方法,就像它们是普通链接一样? Vue通常与example.com/#/myspaces一起使用。您可以使用mode: history
删除此链接,但是实际上您永远不会直接访问没有404错误的链接。
答案 0 :(得分:0)
请尝试以下操作:
Route::get('/{component?}', function () {
return view('welcome');
})->where('component', '[\/\w\.-]*');
为简单起见,我刚刚用匿名函数替换了 HomeController @ index 。