Google Cloud App Engine 中的 Flask Web 应用程序部署出现 favicon.ico 错误

问题描述 投票:0回答:1

我创建了一个简单的应用程序来测试 Google Cloud App Engine 部署。 该应用程序成功部署到谷歌云,但该网站只是说:“服务不可用”并显示以下错误:500内部服务器错误

500 Internal server error

你能帮忙吗?

需求.txt

Flask==2.1.2

app.yml

runtime: python39
entrypoint: gunicorn -b :$PORT app:app

instance_class: F2

env_variables:
  FLASK_ENV: "production"

文件结构: file structure

这就是我试图解决它的方法,但没有成功。

应用程序.py

from flask import Flask, send_from_directory
import os

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

@app.route('/favicon.ico')
def favicon():
    return send_from_directory(os.path.join(app.root_path, 'static'), 'favicon.ico', mimetype='image/vnd.microsoft.icon')

if __name__ == '__main__':
    app.run(debug=True, port=8080)

我还尝试使用 FastAPI 和 Cloud Run 部署,但两者都显示相同的错误。我错过了什么?

flask google-cloud-platform google-app-engine google-cloud-run
1个回答
0
投票
  1. 从 Python 代码中删除

    favicon.ico
    的路由处理程序。

  2. 将您的网站图标放在应用程序文件夹的根目录中。

  3. 然后更新您的

    app.yaml
    文件并将以下内容添加为您的处理程序之一

    handlers:
    - url: /favicon\.ico
      static_files: favicon.ico
      upload: favicon\.ico
    
    

注:

a) 如果您希望将网站图标保留在当前位置(静态范围内),请将

static_files
更改为
static/favicon.ico

b) 我知道您正在测试,但如果有人点击您的网址或者您忘记关闭它(当您仍在测试时),使用 F2 实例将会非常昂贵。

© www.soinside.com 2019 - 2024. All rights reserved.