在Django项目目录之外加载模板

时间:2018-04-30 03:12:24

标签: django reactjs docker

我有一个Django项目,它将使用React作为前端。项目结构如下:

ProjectName/
├── api/
│   └── otherapp1/
│   └── otherapp2/
│   └── api/
│      └── views.py (will contain the method for loading react page)
│      └── settings.py
│   └── manage.py
└── frontend/
    └── public/
        └── index.html (react root page)

如何使用Django加载index.html页面,以便我可以使用django进行身份验证和cookie /会话管理?我无法弄清楚如何正确配置模板/模板目录,因为它位于项目的django部分的根文件夹之外。

我使用的样板是here

可能需要注意的是,由于它是一个docker项目,因此有3个容器。一个用于数据库,一个用于django,一个用于前端。我的django项目中的BASE_DIR解析为/app/api。可能是我需要访问另一个容器中的目录,但如果我不能这样做,那么我应该如何将Django链接到我的React应用程序?

1 个答案:

答案 0 :(得分:4)

在设置(api/api/settings.py)中更新TEMPLATE配置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, '../frontend/public')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

现在Django会在frontend/public目录

中查找模板文件