【发布时间】:2020-02-04 12:45:55
【问题描述】:
我是 django 的新手,所以我在处理 django 模板方面遇到了困难,将 css 文件添加到 django 模板中。我的代码如下:
base.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{% static 'portfolio/main.css' %}"> {% if title%}
<title>Django Portfolio - {{title}}</title>
{% else %}
<title>Django Portfolio</title>
{% endif %}
</head>
<body>
<div class="topnav">
<a class="active" href="{% url 'portfolio-home' %}">Home</a>
<a href="{% url 'portfolio-page' %}">Portfolio</a>
<a href="{% url 'portfolio-about' %}">About</a>
<a href="#blog">Blog</a>
<a href="#account">Account</a>
</div>
<div class="container">
{% block content %} {% endblock content %}
</div>
</body>
</html>
这是我的 base.html 文件,我的所有其他 html 文件都继承了它。它工作得很好。注意:-我在 django 应用程序中创建静态文件并放置两个静态文件; main.css 和 home.css 现在。 但我想设计主页,我使用名为 home.html 的文件完成此操作,并在静态文件中使用 home.css。我的代码如下:
home.html
{% extends 'portfolio/base.html' %}
{% load static %}
{% block content %}
<link rel="stylesheet" type="text/css" href=" {% static 'portfolio/home.css' %}" />
<h1>My homepage</h1>
{% endblock content %}
问题是,<link rel="stylesheet" type="text/css" href=" {% static 'portfolio/home.css' %}" /> 行不起作用。我需要帮助。
【问题讨论】:
-
首先考虑看看何时出现此类问题是在您的浏览器开发工具中。什么是源 HTML?是否显示任何错误(例如 404 错误)?其次,正式的
<link>带有 rel 属性“样式表”是 body-ok,所以它可能出现在正文中,但我不能 100% 确定这会被所有浏览器接受,因为它是非常罕见的做法。您正在使用哪种浏览器进行测试? -
您的 CSS 文件被包含在正文本身中,这将不起作用。在您的基本模板中创建一个
{% block extra_css %} {% endblock %},并将您的代码粘贴到 home.html 模板文件中的相同块{% block extra_css %} <link rel="stylesheet" type="text/css" href=" {% static 'portfolio/home.css' %}" /> {% endblock %} -
@JaskaranSingh 根据this,将
rel设置为"stylesheet"的链接元素是body-ok。您指的是 HTML4 规范,但我们生活在 HTML5 时代。我已经在 Safari 和 Chrome 中测试了 工作中 css 的 标签。同样,我不确定它是否适用于所有浏览器,我同意最好将其放在 中,但我不确定这是 OP 问题的原因。
标签: python html css django django-templates