使用 Passenger 时,django 中的模板是否需要移动到 public

Do the Templates in django need to move to public while using Passenger

非常熟悉 python 和 Flask,但刚刚开始使用 Django。

环境

Dreamhost,Django 1.9(我认为),python 2.7.3,Passenger

问题 STMT

我的应用程序正在运行,并且可以直接从 views.py 使用 HttpResponse 生成索引页面。但是,当我尝试合并模板时,我得到 "TemplateDoesNotExist at /"

因为我是新手,所以我不确定从哪里开始进行故障排除。这是乘客问题还是 Django?

详情

我修改了 settings.py 中的 [DIRS] 以引用模板目录。

'DIRS': ['CTracker/templates'],

然后我在 CTracker 下创建了模板目录和 'clientadmin'(我的应用程序的名称)目录,最后是 index.html 文件。

-CTracker
 |
 |-CTracker
 | |
 | -templates
 |  |
 |  -clientadmin
 |   |
 |    -index.html
 |-manage.py

我在 views.py 中的函数使用以下 return.

return render(request, 'clientadmin/index.html', {
        'clients': client,
    })

故障排除完成

提前谢谢你。感谢任何帮助。

DIRS列表中的项目应该是完整路径,例如:

'DIRS': ['/path/to/CTracker/CTracker/templates'],

Django 设置文件应该有一个 BASE_DIR 定义。您可以将此与 os.path.join 一起使用以避免对完整路径进行硬编码。

'DIRS': [os.path.join(BASE_DIR, 'CTracker', 'templates')]