模板不存在。加载静态文件和模板 Django 项目结构

     2023-02-24     31

关键词:

【中文标题】模板不存在。加载静态文件和模板 Django 项目结构【英文标题】:TemplateDoesNotExist. loading static files and templates Django project structure 【发布时间】:2015-02-05 17:25:19 【问题描述】:

我对如何从其他应用生成模板有点困惑

这是我的项目结构的图片:

我收到此错误:

TemplateDoesNotExist at /
home.html

home/views.py:

class HomeView(generic.TemplateView):
    template_name = "home.html"

Settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
    os.path.join(BASE_DIR, "home/static/home/js"),
    os.path.join(BASE_DIR, "home/static/home/images"),
    os.path.join(BASE_DIR, "home/static/home/css"),
)


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

项目/home/urls.py:

from django.conf.urls import patterns, url

from home.views import HomeView

urlpatterns = patterns('',
    url(r'^$', HomeView.as_view(), name="home"),
)

项目/urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include("home.urls", namespace="home")),

)

项目/模板/home/index.html

<!DOCTYPE html>
<html>
<head lang="en">
  ...
  <!-- Fonts -->
  <link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'>
  <!-- Custom CSS -->
  <link href=" STATIC_URL boothie.css" rel="stylesheet">
  <!-- Custom JS-->
  <script src=" STATIC_URL boothie.js"></script>

  <title>Boothie</title>
</head>
<body>
<div class="container">
   ...
</div>
</head>
  % block content %% endblock %
</body>
</html>

project/home/templates/home/home.html:

% extends index.html %

% block content %
    ...
    <script src=" STATIC_URL js/jquery.easing.1.3.js"></script>
    <script src=" STATIC_URL js/boothie.js"></script>
% endblock %

【问题讨论】:

除非是拼写错误,否则您的模板将称为 home/index.html 而不是 home.html @BurhanKhalid 嗯,我的 home 应用程序中有一个名为 home.html 的文件。我想我的命名约定不好。在我的项目/模板中,有一个名为 home 的目录,其中包含一个文件 index.html home/templates/home.html吗? @BurhanKhalid 我已经上传了我的项目结构的图片 【参考方案1】:

Django 在找到与请求的文件名匹配的第一个模板处停止,它将从 app 文件夹中的 templates 目录开始。

如果它在这里没有找到它,它将沿着链向上直到它搜索了TEMPLATE_DIRS 设置中的所有位置,然后它才会打印一个找不到模板的错误。它搜索模板的方式由TEMPLATE_LOADERS setting 定义。

在您的项目布局中,您想要的模板位于主应用程序的模板目录中,并且在此目录中,在home 目录下。因此,您认为模板路径应该是home/home.html

class HomeView(generic.TemplateView):
    template_name = "home/home.html"

【讨论】:

我做了一些更改并添加了这个TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'templates/index'), os.path.join(BASE_DIR, 'home/templates/home'), ) 不确定这是否是一个好习惯 =/ 不,不要那样做,默认any directory named templates in the app is automatically searched。 具体会增加搜索时间吗? 只有在您拥有不属于某个应用的模板时才使用 TEMPLATE_DIRS。就个人而言,我从未发现需要此设置,因为我的所有模板都位于应用程序中。我真的不知道你的意思是“增加搜索时间”。【参考方案2】:

如果您的模板目录位于项目的根目录中,则必须将其添加到 setitngs.py

如果它是应用程序的子目录(即在 settings.py 的 INSTALLED_APPS 中),那么应用程序模板加载器(默认启用)将加载它。

如果您的应用程序被称为 home,那么您的模板目录将位于 home 目录中,而不是模板下的 home,这将使其可以作为 home/home.html 访问,因为它位于 settings.py 中模板目录的 home 子文件夹下

【讨论】:

Django从模板加载静态url和路径

】Django从模板加载静态url和路径【英文标题】:Djangoloadingstaticurlandpathfromtemplate【发布时间】:2014-09-1510:58:25【问题描述】:我需要在Django模板中链接一个href标记。该文件位于文件夹product-images下的静态位置。实际文件名位于db... 查看详情

模板无法访问 Django 收集的静态文件

】模板无法访问Django收集的静态文件【英文标题】:Djangocollectedstaticfilesarenotaccessiblebytemplates【发布时间】:2021-03-1108:04:51【问题描述】:我创建了一个包含一些应用程序的django项目。最初,我只有一个应用程序,其中有静态文... 查看详情

Django 模板不存在@

】Django模板不存在@【英文标题】:Djangotemplatedoesnotexist@【发布时间】:2021-01-0702:52:54【问题描述】:我正在使用python3.7.2和Django2.1,每次尝试加载主页url时都会出现以下错误。TemplateDoesNotExistat/ghostwriters/post_list.html请求方法:GET... 查看详情

Django:无法从 DigitalOcean Droplet 上的模板加载静态文件

】Django:无法从DigitalOceanDroplet上的模板加载静态文件【英文标题】:Django:can\'tloadstaticfilesfromtemplateonDigitalOceanDroplet【发布时间】:2015-07-3122:04:32【问题描述】:我在DigitalOcean机器上运行的Django应用中从模板加载静态文件时遇到... 查看详情

Django全局静态文件未加载

...题描述】:我想为我的所有应用程序提供全局静态文件和模板。我的应用程序也将有模板和静态文件它看起来像这样:我正在加载像这样的全局文件,但它不起作用。%loadstaticfiles%href="%static\'bootstrap/css/bootstrap.min.css\ 查看详情

静态文件和 django 模板

】静态文件和django模板【英文标题】:staticfilesanddjangotemplates【发布时间】:2013-06-1802:42:58【问题描述】:我想把我所有的link标签放在&lt;head&gt;中。但是,当我通过内置的include标签包含共享模板时,我不知道如何在我的DOM... 查看详情

Django 模板不加载子模板的内容

】Django模板不加载子模板的内容【英文标题】:Djangotemplatesdoesn\'tloadthecontentofchildtemplates【发布时间】:2018-09-2416:11:26【问题描述】:我正在使用Django(1.11)开发一个项目,在该项目中我创建了一个base.html模板,我在该模板中定义... 查看详情

js 文件未在 django 模板中加载

】js文件未在django模板中加载【英文标题】:jsfilesarenotloadingindjangotemplate【发布时间】:2016-09-2818:32:02【问题描述】:我的django项目有点问题。我的静态文件正在加载(img和css),而js文件没有。我在我的应用程序中创建了一个... 查看详情

全局加载 Django“静态”模板标签库,而不在每个文件中显式加载它

】全局加载Django“静态”模板标签库,而不在每个文件中显式加载它【英文标题】:LoadDjango"static"templatetaglibrarygloballywithoutexplicitlyloadingitineveryfile【发布时间】:2013-09-1315:00:03【问题描述】:我想像这样在模板中使用静... 查看详情

Django 模板不存在

】Django模板不存在【英文标题】:Djangotemplatesdoesnotexist【发布时间】:2017-01-2320:16:42【问题描述】:所以我在Windows上工作并尝试加载我的网站主页。但是我得到\'\'模板不存在\'\'错误,我不知道为什么,TemplateDoesNotExistat/home/home.... 查看详情

Django模板未加载

】Django模板未加载【英文标题】:DjangoTemplatenotloading【发布时间】:2015-11-1114:44:24【问题描述】:我有一个名为“src”的项目和一个名为“app”的应用程序,并且我的应用程序中有一个模板文件夹。在我的模板文件夹中,我有另... 查看详情

如何在 django 模板脚本中传递静态 js 文件?

】如何在django模板脚本中传递静态js文件?【英文标题】:Howtopassstaticjsfileindjangotemplatescript?【发布时间】:2021-07-0704:50:33【问题描述】:我想将代码中存在的静态文件json加载到js中以托管swagger。我的index.html:<HTML><head>... 查看详情

django——模板路径模板变量常用过滤器静态文件的使用(代码片段)

 Django模板路径模板变量过滤器静态文件的加载   模板的路径,有两种方法来使用设置一个总的templates在大项目外面,然后在sittings的TEMPLATES中声明在每一个APP中创建templates,然后在settings的INSTALLED_APPS中声明 模... 查看详情

Django 模板不存在

】Django模板不存在【英文标题】:DjangoTemplateDoesNotExist【发布时间】:2015-03-1514:01:36【问题描述】:我知道这已经涵盖了,但没有一个解决方案对我有用。我有一个基本的django项目,它找不到模板。这是我的views.py:now=datetime.date... 查看详情

django静态文件没有加载。修复settings.py以在相对路径上加载文件(代码片段)

我下载了这个模板https://github.com/BlackrockDigital/startbootstrap-resume,我试图在Django中使用它。我遇到静态文件问题,即.css和.jpg。我的项目名为Djangoresume,应用程序是简历。我将模板文件复制到我的/home/kinkyboy/Djangoresume/resume/templates/r... 查看详情

Django模板不加载

】Django模板不加载【英文标题】:Djangotemplatedoesn\'tload【发布时间】:2018-03-0623:27:48【问题描述】:正在关注Django网站的教程,目前在Pt3(https://docs.djangoproject.com/en/1.11/intro/tutorial03/)教程声明:“此代码应创建一个项目符号列表,... 查看详情

模板不加载静态文件

】模板不加载静态文件【英文标题】:Templatesnotloadingstaticfiles【发布时间】:2016-02-2320:42:43【问题描述】:我在加载css文件时遇到问题,在调用继承了读取css页面的base_ownsite.html的index.html之后,css没有加载......base_ownsite.html%loadst... 查看详情

Django 模板不存在?

】Django模板不存在?【英文标题】:DjangoTemplateDoesNotExist?【发布时间】:2010-12-2722:00:58【问题描述】:我的本​​地机器在Ubuntu8.10上运行Python2.5和Nginx,Django是从最新的开发主干构建的。对于我请求的每个URL,它都会抛出:Templa... 查看详情