laravel 8 上有一个项目,前面是用 vue 3 编写的。在前面,当用户使用 导航路径时router-link
,router-view
会加载并显示组件。例如,如果router-link
用户导航到/overview/12
,router-view
加载他的组件,但是当用户在同一路径上并重新加载页面时,则会显示laravel
第错误页面模板,404
表示没有这样的路由。
如何使所有路由/api/*
(我发出 RESTapi 请求的地方除外)使用vue-router
.
resorces/js/router/index.js
:
import IndexSlider from "../components/IndexSlider";
import Newsfeed from "../views/Newsfeed";
import Overview from "../views/Overview";
const routes = [
{
path: '/',
name: 'index',
redirect: '/index'
},
{
path: '/index',
name: 'index-slider',
component: IndexSlider,
children: [
{
path: 'newsfeed',
name: 'newsfeed',
component: Newsfeed
}
]
},
{
path: '/overview/:id',
name: 'overview',
component: Overview,
props: true
}
]
export default routes;
web/web.php
:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\IndexController;
Route::get('/{vue_capture?}', function () {
return view('index');
})->where('vue_capture', '[\/\w\.-]*');
/routes/api.php
:这些路线应该适用于查询axios
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\NewsController;
Route::resource('news', NewsController::class);
vue@3.0.5
... vue-router@4.0.3
_laravel 8
问题是嵌套路径。只需连接脚本以
index.blade.php
更改为/js/app.js
jackalade 中的所有内容。更好地利用asset()