所以我应用程序是由Express本地提供的,使用的是flask API,所以运行起来node server.js
和python runner.py
将启动前端/后端。
然而,当部署到heroku时,似乎只有前端在没有任何flask API连接的情况下工作,没有加载后端资源。
这是我的两个dynos的记录
web: node server.js
server: python runner.py
因此,当我在应用程序部署后导航到它时,只有前端内容在工作。
然而,当我在本地机器上运行python runner.py
时,Heroku上的所有后端内容都开始工作了,我真的不知道这是如何或为什么工作的,但我希望Heroku处理托管API的问题。
如果有人有任何提示或建议,我会很感激的。
Runner.py
import os
from flask import Flask, request, jsonify, json, render_template
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
# Runs the application
if __name__ == "__main__":
app.run(debug=True)
Server.js
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(__dirname + '/dist/client'));
app.get('/*', function(req,res) {
res.sendFile(path.join(__dirname+'/dist/client/index.html'));
});
app.listen(process.env.PORT || 8080);
软件包. json脚本
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"heroku-postbuild": "ng build --prod"
}
Proxy.conf.json
{
"/api": {
"target": "http://localhost:5000",
"secure": false
}
}
编辑:可能已发现问题-https://stackoverflow.com/a/54381386/12314065
会给予一下,然后回来报告。
1条答案
按热度按时间iswrvxsc1#
我在Heroku单台测力计上主持Angular/Flask项目的方式是:
程序文件:
Runtime.txt:
wsgi.py
app.py
Package.json脚本:
项目文件:
其工作原理是:
1.在Heroku中添加
NodeJS
和Python
构建包。1.在根文件夹中创建Requirements.txt和Runtime.txt。
1.部署包。
1.构建Angular项目并存储在
dist
文件夹中,该文件夹作为 flask 应用程序的参数传递。