首页 > 解决方案 > Heroku Django,模板不存在错误

问题描述

所以经过几个深夜的工作,我终于把我的应用程序部署到了 Heroku 上,但现在一个不同的问题,不眠之夜,模板不存在

错误,我使用的是Django.1.11,所以我的设置如下;

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'storages',
    'photos',
]

并且我的模板如下,从文档中,安装的应用程序(APP_DIR 设置为真)将在应用程序中查找模板文件夹。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

最后是我的应用程序结构;

|mysite
|照片
----|模板
--------|照片
------------|index.html

当我加载页面时,我可以从日志中看到;

Using engine django:
django.template.loaders.app_directories.Loader: /app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/templates/photos/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/templates/photos/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /app/photos/templates/photos/index.html (Source does not exist)

最后一行,显示了正确的路径,但不知何故,找不到,我真的不知道为什么,有人能指点一下吗!

谢谢吉米

标签: djangotemplatesheroku

解决方案


如果要显式添加模板文件夹的路径,可以这样设置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR,'photos/templates/photos/templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

推荐阅读