将django项目部署到webfaction并坚持使用TemplateDoesNotExist

时间:2013-10-21 11:48:37

标签: python django apache deployment webfaction

我正在尝试将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)

任何想法如何解决?

1 个答案:

答案 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
        ...