我正在尝试仅使用Flask和Python构建一个非常简单的Flask应用程序。该应用程序可以在本地计算机上完美运行,并且可以无错误地进行导航,但是当我部署到Heroku时,我尝试访问的任何页面(包括索引)都收到404 Not Found错误。
manage.py是我的应用程序的根目录。这是当前的样子:
app = create_app(config.DefaultConfig)
if __name__ == "__main__":
app.run()
这是我的_初始化_.py: 从烧瓶进口烧瓶 从.config导入DefaultConfig 从.shopify_bp导入shopify_bp 从.extensions导入数据库 全部 = ['create_app']
DEFAULT_BLUEPRINTS = (
shopify_bp,
)
def create_app(config=None, blueprints=None,third=None):
"""Create Flask app.
"""
if blueprints is None:
blueprints = DEFAULT_BLUEPRINTS
app = Flask(__name__)
configure_app(app, config)
configure_blueprints(app, blueprints)
return app
这是我的Procfile:
web: gunicorn --bind 0.0.0.0:$PORT manage:app
我认为一切都设置正确,因为我可以在本地运行该应用程序而不会出现任何问题。当我部署到Heroku时,可以看到该站点已启动,而不是崩溃,并且我没有收到任何服务器错误,只是未找到错误。几乎就像我的路线不起作用一样。 这是我尝试访问网站主页时在Heroku日志中看到的内容:
2018-10-24T09:53:26.797881+00:00 app[web.1]: ' "{rv}.localdomain", and use that instead.'.format(rv=rv)
2018-10-24T09:53:26.798802+00:00 app[web.1]: 10.37.240.166 - - [24/Oct/2018:09:53:26 +0000] "GET /shopify HTTP/1.1" 404 233 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.120 Chrome/37.0.2062.120 Safari/537.36"
答案 0 :(得分:0)
您也应该为主机使用env变量,这是我在heroku中Flask应用程序正常运行的Procfile
Activity
我的初始脚本称为web: gunicorn app:app -b "$HOST:$PORT" -w 3
,并且里面的flask应用程序也在app
下创建,但请注意绑定中的app