Express VueJs 2:使用历史记录模式和路由参数时无法渲染视图

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

我正在尝试使用历史记录模式设置SPA路线,如下所示:

{
  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您可以将其放在网页包配置文件中。看到这个了吗