1

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

任何想法如何解决它?

4

1 回答 1

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
        ...
于 2013-10-21T11:56:53.340 回答