【问题标题】:Flask + React App Fails When Deployed to HerokuFlask + React App 部署到 Heroku 时失败
【发布时间】:2021-03-27 02:53:05
【问题描述】:

我正在尝试将一个简单的烧瓶 + 反应项目部署到 heroku。我正在使用独角兽。该应用程序在本地部署时工作,但在 Heroku 上失败。问题在于尝试从构建文件夹提供静态文件,但我无法找出问题所在。

这里是相关代码

#app.py

app = Flask(__name__,
            static_folder='build',
            static_url_path='/')

@app.route('/')
def serve():
        return app.send_static_file('index.html')

Heroku 日志:

2020-12-16T12:04:52.431434+00:00 app[web.1]: [2020-12-16 12:04:52,429] ERROR in app: Exception on / [GET]
2020-12-16T12:04:52.431438+00:00 app[web.1]: Traceback (most recent call last):
2020-12-16T12:04:52.431438+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1950, in full_dispatch_request
2020-12-16T12:04:52.431439+00:00 app[web.1]: rv = self.dispatch_request()
2020-12-16T12:04:52.431439+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1936, in dispatch_request
2020-12-16T12:04:52.431439+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args)
2020-12-16T12:04:52.431440+00:00 app[web.1]: File "/app/app.py", line 17, in serve
2020-12-16T12:04:52.431440+00:00 app[web.1]: return app.send_static_file('index.html')
2020-12-16T12:04:52.431441+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/helpers.py", line 1084, in send_static_file
2020-12-16T12:04:52.431441+00:00 app[web.1]: self.static_folder, filename, cache_timeout=cache_timeout
2020-12-16T12:04:52.431441+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/helpers.py", line 767, in send_from_directory
2020-12-16T12:04:52.431442+00:00 app[web.1]: raise NotFound()
2020-12-16T12:04:52.431442+00:00 app[web.1]: werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try
again.

目录结构:

ROOT
├── app.py
├── build
├── dbfiller.py
├── logs
├── media
├── node_modules
├── openacademia.db
├── package.json
├── package-lock.json
├── Procfile
├── public
├── __pycache__
├── README.md
├── requirements.txt
├── src
├── venv
└── yarn.lock

Procfile: web: gunicorn --bind 0.0.0.0:$PORT app:app

如果还需要什么,请告诉我

【问题讨论】:

    标签: reactjs flask heroku


    【解决方案1】:

    我遇到了确切的问题并遇到了这个问题。发布我的解决方案,因为当简单修复与服务器无关时,我一直在摆弄我的烧瓶服务器代码。

    如果您经常使用 React,您的 /client/build 文件夹可能位于全局或本地 .gitignore 中。当您尝试通过 git 将应用程序部署到 Heroku 时,您的烧瓶服务器被推送到 Heroku 并运行,但您的前端构建文件夹没有!

    修改您的文件夹结构/名称(只需更改 /build 文件夹名称并提供新位置,如果您不想更改您的 .gitignore)或您的 .gitignore 文件来解决此问题。

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2014-11-07
      • 1970-01-01
      • 2020-02-13
      • 2017-09-21
      • 2019-12-02
      相关资源
      最近更新 更多