2013-10-21 79 views
1

我想Django部署项目webfaction与问题卡住,服务器并没有看到我的模板文件夹中的httpd.confDjango部署项目webfaction坚持了TemplateDoesNotExist

PROJECT_DIR = os.path.dirname((os.path.dirname((os.path.dirname(__file__))))) 

    TEMPLATE_DIRS = (
    os.path.join(PROJECT_DIR,'templates'), 
    ) 

蟒蛇路径:

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

当部署到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版本,一种常见的方式I “地图” 一样TEMPLATE_DIRS,STATIC_ROOT,etc目录路径,就是用一个函数来计算它们。这是,如果你在多台计算机上工作,或在一组,其中的路径,这些文件是要每个开发者不同,尤其有用:

# 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 
     ... 
+0

它没有工作 – wadadaaa

+0

您是否重新启动Apache实例? – Brandon

+0

当然是,但是你是否想把这行添加到httpd.conf中? – wadadaaa