使用 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,
})
故障排除完成
- 仔细检查文件是否存在,并显示文件路径
在文件系统和 settings.py 文件中都是正确的。
- 我尝试了 运行 'manage.py collectstatics' 但移动了 0 个文件。
提前谢谢你。感谢任何帮助。
DIRS
列表中的项目应该是完整路径,例如:
'DIRS': ['/path/to/CTracker/CTracker/templates'],
Django 设置文件应该有一个 BASE_DIR
定义。您可以将此与 os.path.join
一起使用以避免对完整路径进行硬编码。
'DIRS': [os.path.join(BASE_DIR, 'CTracker', 'templates')]
非常熟悉 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,
})
故障排除完成
- 仔细检查文件是否存在,并显示文件路径 在文件系统和 settings.py 文件中都是正确的。
- 我尝试了 运行 'manage.py collectstatics' 但移动了 0 个文件。
提前谢谢你。感谢任何帮助。
DIRS
列表中的项目应该是完整路径,例如:
'DIRS': ['/path/to/CTracker/CTracker/templates'],
Django 设置文件应该有一个 BASE_DIR
定义。您可以将此与 os.path.join
一起使用以避免对完整路径进行硬编码。
'DIRS': [os.path.join(BASE_DIR, 'CTracker', 'templates')]