部署时我的Vue应用html5历史记录模式在刷新时或由用户手动键入时出现错误

时间:2019-05-26 08:14:22

标签: vue.js vue-router

我有一个vue应用程序,它在我的本地计算机上运行良好。在研究为什么它会在部署中发挥作用时,我在文档以及该论坛中都看到了一些解决方案。

我似乎没有正确阅读解决方案。

一个解决方案是让Express应用程序实现以下目的:

const express = require('express');
const path = require('path');
const history = require('connect-history-api-fallback');

const app = express();

const staticFileMiddleware = express.static(path.join(__dirname + '/dist'));

app.use(staticFileMiddleware);
app.use(history({
  disableDotRule: true,
  verbose: true
}));
app.use(staticFileMiddleware);

app.get('/', function (req, res) {
  res.render(path.join(__dirname + '/dist/index.html'));
});

var server = app.listen(process.env.PORT || 8080, function () {
  var port = server.address().port;
  console.log("App now running on port", port);
});

我有一个后端Express应用程序,可与mySQL和vue前端通信。

我在后端的app.js文件中实现了以上代码,但无法正常工作。上面的代码答案(来自该论坛)指出,app.js或server.js应位于根文件夹(而不是src)中。

我是否正确地假设我必须实际上将完全独立的Express应用程序运行到我的Express后端,而app.js位于Vue应用程序的根目录中?它会与我现有的快递应用程序路线(例如“ / products”)冲突吗?该路线会获取产品列表等

问题仍然存在,该页面无法刷新或手动输入。但是,如果我从路由器中删除了历史记录模式,则可以刷新并手动输入,但必须使用#。

0 个答案:

没有答案