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 ORM 事务和查询优化的操作方法

    我为你讲解一下“Django ORM 事务和查询优化的操作方法”的完整攻略。 事务 Django中的ORM默认开启了自动提交事务的功能,但是这样可能会造成一些意外情况如数据处理失败时数据库和应用数据不一致等问题。因此,可以通过设置事务来保证数据的一致性。 开启事务 在Django中使用事务很简单,只需要在使用前调用@transaction.atomic装饰器…

    Django 2023年5月16日
    00
  • [django]django model的查询和更新

    再分享Django系列的另外几篇文章:Django model select的各种用法详解:https://mp.weixin.qq.com/s/JVh4UnS2Tql9gUVaBSoGuADjango model update的各种用法介绍:https://mp.weixin.qq.com/s/B_aNB8Y8snbSVLURONZ4QgDjango配置C…

    Django 2023年4月10日
    00
  • CI/CD—-jenkins+gitlab+django(内网)

    1.py第三方包获取 ./pip3 install –target=/home/pyscript Django==1.8.11 ./pip3 install –target=/home/pyscript Django==1.8.11 -i “http://pypi.douban.com/simple/” –trusted-host pypi.douba…

    Django 2023年4月13日
    00
  • django模板语法学习(模板变量,for循环,if语句)

    首先通过django内置的模板需要达到的效果:数据加模板就形成了html页面。 如图: 总所周知,django的mvt模式,是属于前后端不分离的模式。所有得先在templates目录下新建一个personinfo.html文件 如图: 模板内容如下: <!DOCTYPE html><html lang=”en”><head&gt…

    Django 2023年4月12日
    00
  • Django为什么要跳转到不同的页面来实现不同的功能

        其实是不同将信息提交给不同的页面交给不同的页面去处理同一个数据库,不同的模块实现不同的功能,当要实现某一个功能的时候直接跳转到那一个功能下面的url,可以把要实现的功能区分开,以python面向对象的思维去进行处理,把不同的功能看做是不同的对象,跳转到不同的url可以实现对不同的模块功能的处理,把要实现的功能都看作是一个对象。 等于跳转到的url传递…

    Django 2023年4月12日
    00
  • Vue与Django数据交互

    首先配置路由信息,理论上都会添加二级路由:所以会有请求转发 1 from django.conf.urls import url,include 2 3 url(r’^api/(?P<version>\w+)/’,include(“api.urls”)), 此时请求会转发给二级路由:api.urls 1 url(r’^course/$’,cour…

    Django 2023年4月13日
    00
  • Django 字段查询谓词表

    Django 字段查询谓词表 谓词 含义 示例 等价SQL语句 exact 精确等于 Comment.objects.filter(id__exact=14) select * from Comment where id=14 iexact 大小写不敏感的等于 Comment.objects.filter(headline__iexact=’I like t…

    Django 2023年4月12日
    00
  • Anaconda+django写出第一个web app(四)

    前面对Models有了一些了解,今天开始进一步了解Views,了解Views如何和Models交互以及了解模板(templates)。 打开main文件夹下的views.py,重新编写homepage函数,render的用法可在帮助文档 [1]中查看: from django.shortcuts import render from django.http …

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