Django上下文处理器常量在dev中工作但不在生产中

时间:2016-09-06 09:21:52

标签: django django-templates wsgi

我有一个上下文处理器,可以在模板中使用常量,包括基本模板。

在我的vagrant开发服务器上,使用runserver,这些工作正常。生产服务器使用apache和WSGI。

我在开发和制作上都使用了Django 1.9.4。

这是context_processors.py

from .constants import *


def template_constants(request):
    return {'collection_name': COLLECTION_NAME,
            'website_name': WEBSITE_NAME,}

这是来自settings.py

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

常量只在我的应用程序中的constants.py文件中,我将其导入到使用它们的文件中。该文件包含以下行:

WEBSITE_NAME = "website name"

我的观点使用渲染,应该包括RequestContext

return render(request, 'page.html', template_variables)

我没有收到任何错误消息,变量只是在生产模板中没有值,所以没有显示任何内容。

除了部署之外,生产和开发的代码完全相同。

我尝试过的事情: - 将字符串值直接添加到context_processors.py文件中(消除它是从constants.py导入变量的潜在问题) - 回到Django 1.8和1.7以检查它是否与特定版本相关

这些变化都没有任何区别。

0 个答案:

没有答案