【问题标题】:Adding angular build "dist" file to node js server.js将角度构建“dist”文件添加到节点 js server.js
【发布时间】:2020-04-03 12:29:41
【问题描述】:

我正在尝试将我的 MEAN 堆栈应用程序部署到 heroku。我成功提交了应用程序,但我似乎无法将我的 ng 构建“dist”文件连接到我的 server.js 文件。

这是我尝试添加文件的 server.js 代码:

var distDir = __dirname + "/dist/";

app.use(express.static(distDir));

【问题讨论】:

    标签: node.js angular express heroku mean-stack


    【解决方案1】:

    试试这个:

    
    const path = require('path');
    const express = require('express');
    const app = express();
    
    // Serve static files
    app.use(express.static(__dirname + '/outputPath'));
    
    // Send all requests to index.html
    app.get('/*', function(req, res) {
      res.sendFile(path.join(__dirname + '/outputPath/index.html'));
    });
    
    // default Heroku port
    app.listen(process.env.PORT || 5000)
    

    其中outputPathoutputPathangular.json 文件中的值(项目-> 架构师-> 构建-> 选项-> 输出路径)。

    【讨论】:

    • 现在出现此错误:“错误:ENOENT:没有这样的文件或目录,stat '/Users/mattcharnock/Documents/websites/paysocialapp/outputPath/index.html'”
    • 您需要更改输出路径。我在下面的评论中解释了。
    • 当然我假设你之前用 ng build --prod 构建过你的项目。
    • 成功了。但现在它不会为我创建的任何 API 端点提供服务
    • 如果您从另一个域提供后端服务,则必须在后端项目中启用 CORS。您是否将前端和后端托管在同一个项目中?如果是,只需在所有后端端点前加上 /api 之类的前缀。对于希望将所有请求重定向到 index.html 的 SPA,期望以 /api 开头的路径。
    猜你喜欢
    • 2019-10-08
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多