模板不存在于/(给定的url)

2024-07-07 09:17:30 发布

您现在位置:Python中文网/ 问答频道 /正文

它在本地主机上运行,但在生产中显示以下错误:

TemplateDoesNotExist at /tcapp/tcpage

应用程序/网址.py在

^{pr2}$

模板:

  • 在主页.html在
  • 在工作.html在
  • s&c.html

是什么导致了这个错误消息?在


Tags: py模板应用程序消息html错误主页at
2条回答

原因可能是-

  1. 您的设置是否包含正确的模板目录? 您可能需要检查中的TEMPLATE\u DIR设置设置.py-在

      TEMPLATES = [
                    {
                      'BACKEND': 'django.template.backends.django.DjangoTemplates',
                      'DIRS': [
                          '/home/html/example.com',
                          '/home/html/default',
                         ],
                     },
                   {
                    'BACKEND': 'django.template.backends.jinja2.Jinja2',
                    'DIRS': [
                            '/home/html/jinja2',
                            ],
                    },
        ]
    

    更多信息请查看this

  2. 另外,您可能需要使用操作系统路径功能。

告诉我,如果这能解决你的问题。在

模板设置在设置.py在

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        '/var/www/rsa/html', #1) this sets a static path
        os.path.join( PROJECT_PATH, 'templates').replace('\\','/'), #2) this sets a dynamic path
    ],
    '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',
        ],
    },
},
]

第一条路

^{pr2}$

只是说在这个绝对路径上所有的模板都是可用的。不太推荐。我更喜欢第二个选项,根据应用程序设置模板。在

os.path.join( PROJECT_PATH, 'templates').replace('\\','/'),

就是说无论你用什么程序

./manage startapp app_name

在这个应用程序文件夹中,你可以创建一个名为“模板”的文件夹,然后把你想要的模板放在里面。在

在静态文件夹中扩展模板,在动态文件夹中包含特定于应用程序的模板。在

在一个名为countries的应用程序中 你可以在

/国家/模板/显示.html在

你可以在里面

{% extends 'template/app.html' %} << this file is located in the static folder

{% block 'content' %}
  content goes here
{% endblock %}

希望有帮助。在

搜索p.s.模板的顺序是按其列出的顺序进行的,因此首先查看静态模板,然后查看动态位置。 如果应用程序.html如果在模板中找到,则django将到此为止,不再进一步查看。在

相关问题 更多 >