首页 > 解决方案 > 如何在单个html文件中在django3中添加多个css文件?

问题描述

我有一个index.html在模板文件夹中命名的 html 文件和两个 css 文件computer.cssmobile.css它们都在静态文件夹中。我如何在单个index.html文件中使用它们。

标签: htmlcsspython-3.xdjango

解决方案


只需像通常在 HTML 中那样添加它们。但是对于静态文件,您必须将其包含{% load static %}在 HTML 文件中,并且当您访问 css 文件的 URL 时,请以 django 的方式进行,如下所示:

索引.html

{% load static %}
<html>
<head>
    <title>...</title>
    <link rel="stylesheet" href="{% static './path/to/css' %}">
    <link rel="stylesheet" href="{% static './path/to/another/css' %}">
</rest of the code>...

TL/DR:在生产中,像 CSS 这样的静态文件应该由像 nginx 这样的代理服务器处理。因此,如果您处于开发阶段,您的服务器可能无法解析静态文件夹的目录。为此,您可以在项目的urls.py中手动添加以下代码

from django.urls import re_path
from django.views.static import serve
from django.conf import settings

urlpattern += [
  re_path(r'^static/(?:.*)$', serve, {'document_root': settings.STATIC_ROOT, })
]

STATIC_ROOT在您的settings.py中定义

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

推荐阅读