我在同样的问题上苦苦挣扎。问题是当浏览器请求 javascript 和 css 文件时,会发送索引文件的内容。
按照本教程的第 3 步解决。
由于 Vue 只是一个前端库,托管它并执行诸如提供资产之类的事情的最简单方法是创建一个简单的 Express 友好脚本,Heroku 可以使用该脚本来启动一个迷你 Web 服务器。如果您还没有,请快速阅读 Express。之后,添加快递:
npm install express --save
现在将 server.js 文件添加到项目的根目录:
// server.js
var express = require('express');
var path = require('path');
var serveStatic = require('serve-static');
app = express();
app.use(serveStatic(__dirname + "/dist"));
var port = process.env.PORT || 5000;
app.listen(port);
console.log('server started '+ port);
在那之后,由于这个想法首先是为 index.html 提供服务,所以我借用了这个想法并将以下内容添加到我的代码中(请注意,如果请求是 html,我使用了 sendFile):
app.use((req, res, next) => {
res.status(404)
if (req.accepts("html")) {
res.sendFile(path.join(__dirname + "/dist/index.html"))
return
}
if (req.accepts("json")) {
res.send({error: "Not found"})
return
}
res.type("txt").send("Not found")
})