专栏首页nummyDjango静态文件详解

Django静态文件详解

Django通过django.contrib.staticfiles来管理静态文件。

配置静态文件

  • 首先确保django.contrib.staticfiles已经添加到INSTALLED_APPS
  • 在配置文件中设置STATIC_URL,例如STATIC_URL = '/static/'
  • 在模板中可以通过两种方式来引用静态文件,一是直接硬编码,例如/static/my_app/example.jpg。二是使用static模板标签: {% load static %} ![]({% static )
  • 将静态文件保存在应用的static目录下。

开发环境

在开发环境下,当通过runserver启动并且debug=True的时候,服务器会自动转发静态文件,但是这样做效率并不高,也不安全,不适合生产环境。

如果你不想将静态文件放在应用的目录下,而是统一放在某个目录下,可以通过STATICFILES_DIRS进行配置:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    '/var/www/static/',
]

生产环境

django.contrib.staticfiles提供了一个很好的命令用来收集所有的静态文件,并统一放在一个目录下面。

  • 设置STATIC_ROOT,用来保存最终的静态文件, 例如: STATIC_ROOT = "/var/www/example.com/static/"
  • 运行collectstatic命令,执行下面的命令会将所有的静态文件都拷贝到STATIC_ROOT目录下。 $ python manage.py collectstatic

一般的,生产环境不会通过django来转发静态文件,而是通过其他服务器进行转发,比如nginx,apache等。

STATIC_ROOT和STATIC_URL的区别

STATIC_ROOT用来保存收集到的静态文件,服务器最终也将从该路径中获取文件进行转发。

STATIC_URL用来引用静态文件,也就是渲染之后HTML中静态文件的前缀。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django User模型扩展

    通常情况下,Django提供的User模型能够满足我们大部分的需求,但是有时候我们需要给User添加一些格外的功能和信息。

    用户2936342
  • A pivoting die 解法

    用户2936342
  • Django开发环境静态文件配置

    默认情况下,Django会将返回子项目中static目录下的文件。settings文件的配置如下:

    用户2936342
  • Django的STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS

    首先,我们配置静态文件,要在setting.py里面加入如下几行代码: settings.py

    菲宇
  • Flutter常用widget 'Row、Column'

    用于水平显示子项 A widget that displays its children in a horizontal array. 注:这个控件本身不可...

    坑吭吭
  • (93) 函数式数据处理 (下) / 计算机程序的思维逻辑

    上节初步介绍了Java 8中的函数式数据处理,对于collect方法,我们只是演示了其最基本的应用,它还有很多强大的功能,比如,可以分组统计汇总,实现类似数据库...

    swiftma
  • 故障分析 | MySQL TEXT 字段的限制

    项目中有一个数据交换的场景,由于使用了很多个 varchar(1000)、 varchar(2000),导致在创建表的时候,MySQL 提示:

    爱可生开源社区
  • C#开发代码规范中PascalCase和camelCase的两个有用的方法类

    近期为统一Oracle数据库下大写表名和字段,以及下划线_分隔符的特点,升级了旺财C#.NET代码生成器,将规范化的代码写了2个方法用于Camel和Pascal...

    崔文远TroyCui
  • 人工智能公司Next IT公司总裁Rick Collins:理解人工智能在企业中的角色

    过去几个月,机器人程序一直是在互联网上热议的话题。 微软、Facebook等科技业大公司都在向开发者开放了自己的人工智能平台。这些开放的工具和平台意味着,业界向...

    AI科技评论
  • 使用 Python 遍历目录树的方法

    假设有这样一个任务,希望对某个文件夹(包括所有子文件夹与文件)中的所有文件进行处理。这就需要遍历整理目录树, 处理遇到的每个文件。

    砸漏

扫码关注云+社区

领取腾讯云代金券