gpt4 book ai didi

python - Django 1.11 - 项目目录中的模板文件夹

转载 作者:行者123 更新时间:2023-12-01 02:34:41 27 4
gpt4 key购买 nike

我正在努力完成以下工作:

我希望在我的项目目录中有一个用于非应用程序特定的 html 的“常规”模板文件夹,类似于非应用程序特定的静态文件的静态文件夹。

我当前的结构如下所示:

|- my_app/
|- dashboard/
|- static
|- dashboard/
|- css/
|- ...
|- templates
|- dashboard
|- index.html
|- ...
|- urls.py
|- views.py
|- landing/
|- static
|- landing/
|- css/
|- ...
|- templates
|- landing
|- index.html
|- ...
|- urls.py
|- views.py
|- my_app/
|- static/
|- my_app/ <-- no problem loading these
|- css/
|- ...
|- templates
|- my_app <-- unable to load these
|- boilerplate.html
|- settings.py
|- ...
|- manage.py

我当前的约定是,如果 html 或静态文件位于应用程序目录中,则它们特定于该应用程序,如果它们位于项目(此处为 my_app)目录中,则它们适用于整个项目。

我现在的问题是,当我尝试通过在仪表板/index.html中声明 {% include "my_app/boilerplate.html"%} 将boilerplate.html(片段)加载到仪表板/index.html中时,它会提示:

TemplateDoesNotExist at /dashboard

我的settings.py 文件,或者至少我认为相关的部分如下:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, '/my_app/templates').replace('\\', '/'),
],
'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',
],
},
},
]

某些东西很可能丢失或配置错误,因为它不起作用,但我无法弄清楚它是什么。有什么想法吗?

最佳答案

好吧,我认为您正在使用 Windows,现在对于您的问题,您应该为项目中的许多应用程序使用一个模板文件夹

os.path.join(BASE_DIR, '/templates').replace('\', '/'),

'DIRS':[BASE_DIR+"/templates"],

从设置中删除 my_app

然后在模板文件夹中明智地设置文件夹应用程序,并且同样适用于静态文件和媒体文件。

这里 my_app 是你的主项目,所以它可以正常工作,但 Django 不能能够从其他应用程序获取

希望这有助于告诉我您是否需要更多解释:)

关于python - Django 1.11 - 项目目录中的模板文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46379627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com