使用virtualenv时django settings.py中TEMPLATE_DIRS的路径是什么


问题内容

我使用的virtualenv,我想知道什么TEMPLATE_DIRSsettings.py应该是,例如,如果我做一个模板文件夹在我的项目文件夹的根。


问题答案:

您需要指定模板文件夹的绝对路径。即使在Windows上,也始终使用正斜杠。

例如,如果您的项目文件夹是“ / home / djangouser / projects / myproject”(Linux)或“ C:\
projects \ myproject \”(Windows),则TEMPLATE_DIRS如下所示:

    # for Linux
    TEMPLATE_DIRS = (
        '/home/djangouser/projects/myproject/templates/',
    )

    # or for Windows; use forward slashes!
    TEMPLATE_DIRS = (
        'C:/projects/myproject/templates/',
    )

或者,您可以使用指定的PROJECT_ROOT变量,并通过将其与模板文件夹的相对路径连接起来来生成绝对路径。这样的好处是,如果将项目复制到其他位置,则只需要更改PROJECT_ROOT。您需要导入os模块以使其工作:

# add at the beginning of settings.py
import os

# ...

TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates/'),
)