我在我的应用程序中使用模板。我在base.html中设置了网站的主要部分,是'base.html'中正确编码的文件(标题,菜单,页脚...)以及链接的样式(在链接rel =“stylesheet”)。
当我尝试使用基本模板时,基本模板,它可以很好地工作,它允许我在de {%block content%}之间添加内容,还显示'永久'部分(菜单,标题等) ,但它没有样式(CSS)。我怎么能扩展到这些样式表来加载CSS样式??
帮助将不胜感激,谢谢。
编辑2:这是我的base.html主管内容:
<head>
<meta charset="utf-8">
{% load staticfiles %}
<title>{% block title %}Index{% endblock %}</title>
{% block style_base %}
<link href="{% static 'css/styles.css' %}" rel="stylesheet">
{% endblock %}
<meta name="description" content="{% block description %}{% endblock %}">
<link href='https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,300' rel='stylesheet' type='text/css'>
<script src="static/myapp/jquery.min.js" type="text/javascript"></script>
<script src="static/myapp/main.js" type="text/javascript"></script>
</head>
这适用于base.html,它获取正确的样式。但是,当尝试使用另一个模板在公共部分中获得相同的样式时,它不会获得样式。模板代码如下所示:
{% extends "base.html" %}
{% load staticfiles %}
{% load i18n %}
{% include "base.html" %}
{% block title %}{% trans "Main index" %}{% endblock %}
{% block content1 %}
它从base.html获取了所有正确的HTML但没有样式。我也尝试删除'include'标签或更改其位置,但没有结果。有什么不对?谢谢。
此外,控制台告诉我:
Not Found: /list/static/myapp/styles.css
[25/Mar/2016 01:03:03] "GET /list/static/myapp/styles.css HTTP/1.1" 404 3414
当我刷新页面时(列表是有模板的页面,我想从基础获取样式)它一直告诉我这个。 List不是我项目中的目录,但/static/myapp/styles.css路径是正确的。会发生什么?
答案 0 :(得分:1)
您必须在base.html中调用CSS文件,因此当您在其他页面中扩展base.hml时,将调用CSS。
对我而言,我通常这样做:
我有Head.html我调用我在网站内使用的所有Javascripts和CSS文件,如下所示:
for CSS:
<link rel="stylesheet" type="text/css" href="/static/styles/example.css"/>
for javascript:
<script type="text/javascript" src="/static/js/example.js"></script>
然后,在网站的每个页面中,在标题标签之后我将此Head.html包括在内:
{% include "Head.html" %}
当您在每个页面中执行此操作时,CSS和javascripts文件将在所有页面中显示并可调用。
此外,主要的urls.py文件应如下所示:“答案来自here”
urlpatterns = [ # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
答案 1 :(得分:0)
在你的html文件之上添加:
{% extends "base.html" %}
答案 2 :(得分:0)
应该可行,可能是css路径错误,或者尝试删除{%block style_base%}