在GitHub Actions中部署Flask Web应用遇访问异常求助
GitHub Actions部署Flask应用无法访问的问题
我决定使用GitHub Actions部署并通过Python Flask渲染网页,但部署后无法正常访问。执行流程无报错,Flask持续监听生产端口0.0.0.0,但访问GitHub Pages网址无响应;最初返回404错误,配置项目根目录后仅显示README文件,无法加载templates目录下的index.html。
我的GitHub Actions配置(YML代码)
name: page run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 on: push: branches: - main permissions: contents: "write" jobs: build-and-deploy: runs-on: ubuntu-latest environment: production steps: - name: Installing dependencies run: python -m pip install Flask - run: echo "Iniciando..." - name: Check out repository code uses: actions/checkout@v4 - run: echo "Creando servidor..." - name: Init server run: python "${{ github.workspace }}/server.py"
我的Flask代码
from flask import Flask, request, Blueprint, render_template; app = Flask(__name__); DEBUG=False; #Registramos una nueva url media_pt=Blueprint("media", __name__, static_folder="./media", static_url_path="/media"); app.register_blueprint(media_pt); media_pt=Blueprint("static", __name__, static_folder="./static", static_url_path="/static"); app.register_blueprint(media_pt); @app.route("/") def index(): return render_template("index.html"); @app.route("/ok") def is_of(): return "is okk"; if __name__=="__main__": app.run(host="0.0.0.0",debug=DEBUG)
问题根源与解决办法
- GitHub Pages不支持动态后端服务:GitHub Pages仅能托管静态资源(HTML、CSS、JS、图片等),无法运行Flask这类需要服务器执行的动态应用。你当前的Action只是在GitHub的临时Runner实例中启动了Flask服务,一旦Runner任务执行完毕,服务就会终止,且Pages平台本身不会代理到这个临时服务。
- 调整部署方案:
- 若要运行动态Flask应用,需选择支持后端运行的平台,比如Render、Heroku、AWS Elastic Beanstalk等。
- 若坚持使用GitHub生态,可将Flask应用转换为静态文件:使用
Frozen-Flask工具把动态页面预渲染成静态HTML,再将静态文件部署到GitHub Pages。
- 修正现有Action的步骤顺序:当前Action先安装依赖再拉取代码,逻辑颠倒,正确顺序应为先
checkout代码,再安装依赖,否则安装环节无法关联到项目文件。
内容的提问来源于stack exchange,提问作者DABL03
相关产品推荐
相关产品推荐

