我为我的cs50最终项目创建了一个烧瓶应用程序。它通过Github成功部署到Heroku,但由于某种原因它不起作用。
在本地运行flask run
时,它工作正常。
我的项目文件夹是这样组织的
Procfile的内容如下:
web: gunicorn app:app
根据这篇有用的帖子,我想这是对的。
按照heroku的指示,我运行了heroku日志--tail--app[app],查看问题出在哪里
这是我得到的错误信息:
at=error code=H14 desc="No web processes running" method=GET path="/" host=joking.herokuapp.com request_id=029d94b3-938c-4623-8421-7246c2ba52dc fwd="177.104.215.5" dyno= connect= service= status=503 bytes= protocol=https
当我在Procfile中明确定义它时,为什么它会说没有运行web进程
此外,我在网上搜索(看看这些帖子,例如:A、B和C),人们经常通过运行heroku ps:scale web=1来解决这个问题
我这样做了,但不幸的是,它没有解决问题。以下是它返回的信息:
Scaling dynos... done, now running web at 1:Free
所以看起来dynos缩放是可以的。
那会是什么问题呢?我错过什么了吗<我接受任何建议。也许我的代码有问题?还是文件和文件夹的组织方式?古尼科恩?
Gunicorn工作器仍然无法启动。原因是您没有在app.run()中定义主机和端口参数
应该是这样的:
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(host="0.0.0.0",port=port)
我注意到的第二件事是,您正在为数据库使用sqlite(db文件)。
heroku不支持sqlite worker超时重启,所有文件都处于部署状态,任何上传的文件或更新的文件都将丢失。这里是资源。
Heroku有postgresql数据库可以使用,但是你需要使用psgcopg2(我不清楚)或者使用flask-sqlalchey
,它支持各种数据库。你可以找到几篇文章和视频来部署postgresql应用程序。
同样,您将无法在heroku中保存profile_pics用户。您可以使用带有pyrebase包的Firebase存储系统将文件上传到服务器。文档
您可以在此处访问已部署的应用程序。
CORS策略阻止从来源“http://localhost:3000”访问位于“http://localhost:8080/api”的XMLHttpRequest:请求的资源上没有“access-control-allog-origin”标头。 你知道吗?
我正在制作一个单位转换器,遇到了一个问题与JoptionPane.ShowMessageDialog代码是完整的,应该运行良好。 如果将两个转换单元都放到同一个单元,转换器将显示一个消息对话框。当消息窗口弹出,它说消息,然后一个确定按钮点击。当我单击Ok按钮时,它不会退出消息对话框。我从这个转换器的另一个更长的版本中为它复制了代码行,它可以很好地使用它。另外,如果你对如何做更好的数学有任何建议,请
java:11:error:二进制运算符“+”X t=(X+y+z)的操作数类型不正确;^first type:X second type:X其中X是类型变量:X扩展类parent中声明的对象注意:main.java使用未经检查或不安全的操作。注意:有关详细信息,请使用-xlint:unchecked重新编译。1个错误
在我的Mac-pro OS-X Yosemite上,我使用jenv安装java7和java8。 然后对每个Java执行“jenv add”命令,如下所示: 添加Oracle64-1.7.0.80 我可以在/users/xxxxx/.jenv/versions上看到这两个文件 lrwxr-xr-x 1 root staff 64 Feb 1 13:42 oracle64-1.8.0.121->/li
我读过很多关于在android中解析json的文章,我不知道我错过了什么,因为我认为我做得很对,但它总是显示出错误 下面是我的JSON: 这是我在android中的句柄
我正在尝试解决数组旋转的程序。我在代码中遇到分段错误。有人能告诉我这个代码中的问题在哪里吗? 这就是问题所在 给定一个大小为N的未排序数组arr[],将其旋转D元素(顺时针)。 输入的第一行包含T表示测试用例的数量。每个测试用例的第一行包含两个空格分隔的元素,N表示数组的大小,整数D表示旋转的数字大小。随后的行将是N个空格分隔的数组元素。 我已经用下面的代码解决了它。