首页 > 解决方案 > 使用 Google App Engine 部署 Django API 时访问静态文件的问题

问题描述

schema.yml在我的项目的静态文件夹中有文档,在开发过程中一切似乎都正常工作,但是在部署到App Engine我得到错误之后Not Found /static/schema.yml。我的配置如下所示。你有什么想法可能是问题的原因吗?

设置.py:

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = (
  os.path.join(BASE_DIR, 'templates'),
)
STATIC_URL = '/static/'

应用程序.yaml:

runtime: custom
env: flex
entrypoint: gunicorn -b :$PORT mysite.wsgi
service: mysite-service

handlers:
- url: /static/
  static_dir: static

标签: pythondjangogoogle-app-enginegoogle-cloud-platformdjango-rest-framework

解决方案


用于自定义环境的 Google App Engine Flex 会忽略处理程序部分。如果您将此部分添加到“app.yaml”但环境不使用,则没有问题。handlers 部分适用于Google App Engine Standard。因此,这就是为什么在 App Engine 标准环境中有效但在 App Engine flex 中无效的原因。支持处理程序的唯一语言是java,您可以找到说明可以做到这一点的文档。

但是,为了提供静态文件,您可以查看此文档,其中包含在 App Engine Flex 中配置静态文件的必要步骤。


推荐阅读