我正在尝试将django项目部署到webfaction并且遇到服务器看不到我的模板文件夹的问题
PROJECT_DIR = os.path.dirname((os.path.dirname((os.path.dirname(__file__)))))
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR,'templates'),
)
httpd.conf中的python路径:
python-path=/home/wadadaaa/webapps/promo_site/myproject:/home/wadadaaa/webapps/promo_site/lib/python2.7
我有例外:
Exception Type: TemplateDoesNotExist
Exception Value: index.html
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/home/wadadaaa/webapps/promo_site/templates/index.html (File does not exist)
任何想法如何解决?
答案 0 :(得分:0)
部署到WebFaction时,我将项目的父目录添加到python_path:
python-path=/home/wadadaaa/webapps/promo_site:/home/wadadaaa/webapps/promo_site/myproject:/home/wadadaaa/webapps/promo_site/lib/python2.7
如果您正在使用Django 1.5.x,我“映射”TEMPLATE_DIRS,STATIC_ROOT等目录路径的常用方法是使用函数来计算它们。如果您在多台计算机上工作,或者在一个组中,这些文件的路径将因每个开发人员的不同而变得特别有用:
# settings.py
import os
def map_path(directory_name):
return os.path.join(os.path.dirname(__file__),
'../' + directory_name).replace('\\', '/')
...
TEMPLATE_DIRS = (
map_path('templates'),
)
这是一种映射模板目录的便捷方式,给定项目结构:
my_app/
my_app/
__init__.py
settings.py
...
a_module/
__init__.py
models.py
templates/
layouts/
base.html
index.html
...