cus*_*ice 6 css python django django-templates django-views
Django的新手,我想为不同的页面使用不同的css文件 - 例如page1.css用于page1.html,page2.css用于page2.html.有没有办法在扩展base.html的同时做到这一点?
在base.html中
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{% block title %}Default Title{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- css -->
if page1.html
<link rel="stylesheet" href="{% static "css/page1.css" %}">
if page2.html
<link rel="stylesheet" href="{% static "css/page2.css" %}">
if page3.html
<link rel="stylesheet" href="{% static "css/page3.css" %}">
</head>
<body class="{% block body_class %}{% endblock %}">
{% block content %}{% endblock%}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在page1.html中
{% extends "base.html" %}
{% load staticfiles %}
{% block body_class %}page1{% endblock %}
{% block title %}Page1{% endblock %}
{% block content %}
Page 1
{% endblock content %}
Run Code Online (Sandbox Code Playgroud)
jrd*_*rd1 14
您可以使用相同的概念,{% block content %}您可以将其填写或逐页扩展.
因此,在base.html,创建一个styles在该head部分中调用的块(或者您想要加载CSS的任何地方):
{% block styles %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
现在,您可以在任何使用base.html以下模板的模板中逐页扩展此块:
例: page1/template-view.html
{% extends "base.html" %}
{% load staticfiles %}
{% block styles %}
<link rel="stylesheet" href="{% static 'css/page1.css' %}">
{% endblock %}
Run Code Online (Sandbox Code Playgroud)