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

时间:2018-08-14 15:56:31

标签: laravel laravel-5 vue.js vuejs2

我正在使用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错误的链接。

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

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

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