Djang中静态文件配置方法

在Django中,静态文件(如CSS、JavaScript、图片等)是指不随着页面内容的变化而发生改变的文件。下面将详细讲解在Django中如何配置静态文件。

静态文件配置方法

第一步:在settings.py中设置静态文件路径

在Django项目的settings.py文件中,可以通过STATICFILES_DIRS、STATIC_ROOT、STATIC_URL三个变量配置静态文件路径。具体含义如下:

  • STATICFILES_DIRS:静态文件目录,即Django会去这些目录中找寻静态文件。在这里可以指定多个目录。

  • STATIC_ROOT:静态文件的根目录,即静态文件的总目录。当我们执行collectstatic命令时,Django会把所有静态文件收集到这个目录中。

  • STATIC_URL:静态文件的URL前缀,即在HTML代码中,引用静态文件url的前缀。

以下是一个示例设置:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

STATIC_ROOT = os.path.join(BASE_DIR, 'public', 'static')

STATIC_URL = '/static/'

第二步:在页面中引用静态文件

引用静态文件分为以下两种情况:

1. 在模板中引用静态文件

在Django的模板中,可以使用{% static '文件路径' %}标签来引用静态文件。例如:

<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}">

2. 在python代码中引用静态文件

可以在python代码中使用static函数来引用静态文件。例如:

from django.templatetags.static import static

url = static('css/styles.css')

静态文件配置示例

下面给出两个静态文件配置的示例:

示例1:在Django项目中引用Bootstrap

  1. 下载Bootstrap,并解压到项目中的static目录下,最终目录结构如下:
├─ static
│  ├─ bootstrap
│     ├─ css
│     ├─ js
│     ├─ ...
  1. 在base.html中添加以下代码:
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
  1. 在本地运行项目,即可看到Bootstrap效果。

示例2:使用Whitenoise配置静态文件

  1. 安装Whitenoise
pip install whitenoise
  1. 在settings.py文件中添加以下代码:
MIDDLEWARE = [
    'whitenoise.middleware.WhiteNoiseMiddleware',
    # 其他中间件
]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
  1. 在模板中使用{% static %}标签引用静态文件,例如:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}">

通过Whitenoise中间件,可以有效地缓存静态文件。同时,CompressedManifestStaticFilesStorage模式可以让静态文件被浏览器缓存,提高网站加载速度。

以上就是在Django中配置静态文件的整个攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Djang中静态文件配置方法 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django获取多个数据及文件的上传和接收

    Django-2 1.获取多个数据及文件的上传和接收 request.POST request.GET request.FILES request.POST.getlist() 注意: 上传文件form的特殊设置: <form action=”” method=”POST” enctype=’multipart/form-data’ > <…

    Django 2023年4月10日
    00
  • Django实现自定义标签

    在Django中,标签(Tag)是一种用于添加动态数据和逻辑的模板语言。标签能够实现复杂的逻辑,并且使模板变得更加灵活。 Django提供了一些内置的标签,但是有时候我们需要自定义标签,以满足特定的需求。 Django提供了两种自定义标签的方式:简单标签和复杂标签。简单标签是没有结束标记的标签,而复杂标签有开始标记和结束标记。 简单标签 自定义简单标签只需要…

    Django 2023年3月12日
    00
  • Django REST framework学习之JWT失效方式

    前因 项目通过JWT 来实现用户的验证,在注销和异设备登入或密码修改的时候都需要让旧的JWT 失效,但是 DRF JWT 没有内置失效方法,官方推荐通过设置“JWT_GET_USER_SECRET_KEY” 为一个使每次SECRET_KEY 不相同的方法,从而使每次生成的Token 都不一样。   后果 具体方式如下: 1.首先修改用户模型类users.mo…

    Django 2023年4月11日
    00
  • django站点管理详解

    下面我将为你详细讲解“Django站点管理详解”的完整攻略。 Django站点管理详解 Django站点管理介绍 Django站点管理是Django框架提供的内置模块,用于管理和展示站点的内容。通过Django站点管理,我们可以方便地进行内容管理、权限管理、页面展示等操作,而无需手动编写代码。 Django站点管理的使用 要使用Django站点管理,在Dja…

    Django 2023年5月16日
    00
  • 杂记:Django和static,Nginx配置路径,json_schema

    前记:知识无处不在,要懂得珍惜,找到适合自己的方法高效地学习有价值的知识,不念过去,不畏将来。 Django对待静态资源,在非前后端分离时的常识 Django会对项目app下的static文件夹的静态资源进行收集,同名则按优先级指向,要自己加资源可以在settings.py的STATICFILES_DIRS进行额外指定,STATIC_URL=‘/static…

    Django 2023年4月10日
    00
  • Django基础之Model操作步骤(介绍)

    下面是“Django基础之Model操作步骤(介绍)”的完整攻略。 什么是Model? 在Django中,Model是用来定义数据库模式的一种方式,并负责存储数据。在Django中,每个模型对应着数据库中的一个表,每个模型类都是django.db.models.Model的子类,而每个属性都对应着数据库表中的一个字段。 Model操作步骤 1. 定义Mode…

    Django 2023年5月16日
    00
  • 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example原作者:Antonio Melé 2016年12月10日发布(没有进行校对,有很多错别字以及模糊不清的语句,请大家见谅) 2017年2月7日精校完成(断断续续的终于完成了第一章精校,感觉比直接翻译还要累,继续加油) 2017年2月10日再次…

    Django 2023年4月11日
    00
  • django 修改 request 对象中的请求参数, 并重新赋值给 request 对象

    直接上代码, 实现流程看代码及注释 def your_view(self, request): method = request.method if method == “GET”: # 使用 querydict对象的copy()方法, 获取一个可修改的querydict data = request.GET.copy() # 修改参数值 data = pa…

    Django 2023年4月9日
    00
合作推广
合作推广
分享本页
返回顶部