gpt4 book ai didi

laravel - Vue SPA 网址在启用历史模式的情况下不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 22:39:09 25 4
gpt4 key购买 nike

我正在使用 Vue js 创建一个 SPA,它可以正常工作,但我遇到了一个问题。在 Vue 上启用历史模式后,我可以输入 url 并使用 Vue 路由器转到该页面,但是当我尝试登录时,我得到的是文字页面 html。我知道我可以做类似 auth\{vue?} 的事情,但如果我不必那样做我会更愿意。我希望能够始终保持没有前缀的 url,除非它是 API 请求。例如:

我有 Root View :

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

然后我有 api 请求:

Route::group(['prefix' => 'api'], function () {
Route::post('/login', 'Auth\\LoginController@login');

Route::post('/register', 'Auth\\RegisterController@register');

Route::get('/logout', 'Auth\\LoginController@logout');
});

但是当我点击 /api/login 时,我从 /{vue?} 获得了返回 View 数据。

我希望这是有道理的,如果是的话,任何帮助都会很棒,谢谢。

最佳答案

这里解释的很清楚:https://kjamesy.london/work/laravel-53-vuejs-20-make-vuerouters-history-mode-play-nicely-with-laravels-routes

简短的故事:在 VueRouter 中将 history 模式声明为 false,然后在 Laravel 端,每当 $request->ajax() 为 false 时,相同的路由将始终捕获请求。因此,我们可以安全地定义一个包罗万象的路由,将此类流量重定向到资源 Controller 的 index() 方法:

关于laravel - Vue SPA 网址在启用历史模式的情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com