我试图通过github将一个有角度的应用程序“ test-app”部署到heroku,并且一切正常,但是我无法设置快速路由功能。我尝试了各种路径,但是heroku只是出现了这个错误。
错误:ENOENT:没有这样的文件或目录,stat'/app/test-app/index.html'
以下是我的“ server.js”文件
const express = require("express");
const path = require("path");
const app = express();
app.use(express.static(__dirname + "/dist"));
app.get("/*", function(req, res) {
res.sendFile(path.join(__dirname, "/dist/test-app/index.html"));
});
app.listen(process.env.PORT || 8080, () => {
console.log("Connected to the server");
});
我认为我在“路径连接”部分弄乱了某些内容。有人可以在这里帮助我吗?
答案 0 :(得分:0)
您是否使用ng build来构建角度应用程序? 如果是,那么您是否将构建的输出放入dist文件夹中?
我建议以下几点:
1.分离快递服务器和角度应用程序。
2.构建您的有角度的应用程序,然后将输出(仅html和js文件而不是具有项目名称的文件夹)复制到您的express应用程序中的目录中(可以说您也将其命名为dist)。
3.在Express应用程序中,您仅需要以下内容:app.use(express.static(__dirname + "/dist"));
而不是
app.get("/*", function(req, res) {
res.sendFile(path.join(__dirname, "/dist/test-app/index.html"));
});.
即使将express和angular应用程序放在同一个工作区中,也可以使其仅与第3部分一起使用,但是最好将它们分开,因为它们是彼此交互但可能需要交互的两个不同实体大量开发。
编辑:记录__dirname并查看其显示内容。大多数情况下,app.use(express.static("dist"));
就足够了。