为什么' DIRS':['模板']也有效?

时间:2018-03-20 13:26:15

标签: django django-templates django-2.0

为了能够在django中找到模板文件,每个人都说你应该像这样修改settings.py:

TEMPLATES = [{
    'DIRS': [os.path.join(BASE_DIR, 'templates')]
}]

但我发现这也有效:

TEMPLATES = [{
    'DIRS': ['templates'],
}]

我的问题是它们之间有什么区别。为什么没有人推荐'DIRS': ['templates']

1 个答案:

答案 0 :(得分:1)

如果您将'templates'之类的相对路径传递给DIRS设置,则会将其解释为相对于当前目录,例如运行./manage.py runserver时所在的目录。

如果您尝试从其他目录运行服务器,则此路径可能指向不存在的目录,并且您的页面将不会呈现。

如果您传递绝对路径,那么无论工作目录如何,您的应用都将正常工作。

现在,如何获得绝对路径?采取项目的绝对路径(BASE_DIR)并在最后添加templates - 这是os.path.join为您所做的。