App Engine上的django无法在子目录中呈现模板

时间:2018-09-21 18:48:52

标签: django python-3.x google-app-engine app-engine-flexible

有人将其标记为重复-并非由于以下原因而链接到该问题。首先,我不会为每个网址收到404错误。我得到了一些模板,而没有得到其他模板,我得到了所有模板(位于模板文件夹的顶层),而不是子目录中的所有模板。同样,它给出500错误而不是404错误,这是另一种错误类别。

我一直试图将django(2.1)(python3)应用程序放在Google的灵活应用程序引擎上,并遇到了以下问题:

该应用程序不呈现templates文件夹的子目录中的任何模板,它给出500个错误。我一直在通过gcloud控制台和管理界面查看日志的尾部,但看不到任何有用的信息。

我的app.yaml是:

runtime: python
# api_version: 1

env: flex
entrypoint: gunicorn -b :$PORT MyApp.MyApp.wsgi
runtime_config:
    python_version: 3

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

env_variables:
  SECRET_KEY: 'key-here'
  DEBUG: 'False'
  DB_HOST: '/cloudsql/instance:region:instance'
  DB_PORT: '5432'
  DB_NAME: 'instance'
  DB_USER: 'postgres'
  DB_PASSWORD: 'db-password'
  STATIC_URL: 'https://storage.googleapis.com/bucket-name/static/'

beta_settings:
  cloud_sql_instances: 'instance:region:instance'

我的模板文件夹设置:     BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(文件)))

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates'),
                 os.path.join(BASE_DIR, 'templates', 'subdir'),
                 os.path.join(BASE_DIR, 'templates', 'subdir', 'othersubdir'),

我真的很沮丧。对于从何处获取更详细的错误日志或可能存在的问题的任何建议或反馈,将不胜感激-谢谢!

2 个答案:

答案 0 :(得分:0)

尝试一些更直接的方法,例如:

TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'templates'),)
TEMPLATE_DIRS += (os.path.join(os.path.dirname(__file__), 'templates/subdir'),)
TEMPLATE_DIRS += (os.path.join(os.path.dirname(__file__), 'templates/subdir/othersubdir'),)

os.path.dirname(__file__)settings.py的位置,因此一切都是相对的。

答案 1 :(得分:0)

也许在重新开始之前,您可以在Stackdriver Logs上看到一些更具体的错误,可以使用过滤器按资源过滤日志,也许您可​​以在GAE Application上查看有关错误的更多详细信息。 / p>

无论如何...如果您已经重新开始,也许可以use this example project作为参考,以查看所有所需的配置和实现