Express VueJs 2:使用历史记录模式和路由参数时无法渲染视图
我正在尝试使用历史记录模式设置SPA路线,如下所示:Express VueJs 2:使用历史记录模式和路由参数时无法渲染视图,express,vuejs2,vue-router,Express,Vuejs2,Vue Router,我正在尝试使用历史记录模式设置SPA路线,如下所示: { mode: 'history', routes: [ { path: '/', component: Home }, { path: '/articles', component: ArticleList, children: [ { path: ':title', component: Ar
{
mode: 'history',
routes: [
{
path: '/',
component: Home
},
{
path: '/articles',
component: ArticleList,
children: [
{
path: ':title',
component: ArticleView
}
]
}
]
}
在vue和express应用程序上使用历史模式路由时,我将“express history api fallback”设置为管道中的最后一个中间件:
const app = express();
const root = path.join(__dirname, '../client/dist');
app.use(express.static(root));
/* other middlewares */
app.use(fallback('index.html', {root: root}));
重新加载页面时,一切正常。例如,加载url会正确打开视图,但是当我尝试访问包含参数的视图时,无论发生什么情况,都不会加载视图,并且会向express发出两个请求
即,对的请求将分解为两个请求。一对一对
据我所知,第一个请求获取index.html,另一个请求获取捆绑的js脚本
此外,在express应用程序中,所有到api的路由都以“api”前缀开头
问题:
我的设置/代码使用历史记录模式和路由参数有什么问题,因为在手动输入url或点击刷新时尝试访问时,没有加载带参数的路由
更新:
使用connect history api fallback会产生相同的结果问题在于Web包注入index.html的脚本标记
<script type="text/javascript" src="app.06503cbc260646a996d9.js"></script>
src属性值缺少“/”前缀,因此文件解析失败
为了让它工作,我链接了src文件如下:
<script type="text/javascript" src="/app.06503cbc260646a996d9.js"></script>
当我使用webpack绑定js文件时,我在webpack配置中添加了output.publicPath'/'
更多信息:您可以指定如何添加output.publicPath,什么文件吗?@rai您可以将其放在网页包配置文件中。看到这个了吗