Django Static与Media

本文详细介绍了在Django 1.9+版本中如何正确配置Static和Media,包括静态文件(css, js)和用户上传文件(图片, 视频)的设置方法,帮助解决常见加载问题。

关于Django中Static和Media的设置问题(尤其是css和js静态文件加载的问题),网上有很多回答,但是发现有相当一部分回答并不能解决问题。有的可能是Django版本问题,有的是把media和static搞混了。下面是关于Django 1.9+ 中static与media的总结:

区别:

  • Static是不变的,形成网站的核心部件,如 CSS文件,JS文件,背景图片等;
  • Media是变动的,由用户定义的文件,如 用户头像, 用户上传的图片或视频等。

配置方法:

1.Static

  1. 在项目根目录新建static文件夹
  2. 在setting.py中设置:
    • STATIC_DIR=os.path.join(BASE_DIR,'static')
    • STATICFILES_DIRS=[STATIC_DIR,] (当由多个静态文件目录时,可加入)
  3. 在模板文件的<!DOCTYPE html> 下面(不要写到最开头),写入{% load staticfiles %}
  4. 在模板文件中引用:{% static '' %}

2. Media

  1. 在项目根目录新建media文件夹
  2. 在setting.py中设置
    • MEDIA_DIR=os.path.join(BASE_DIR,'media')
    • MEDIA_ROOT=MEDIA_DIR
    • MEDIA_URL='/media/'(前后都有斜杠)
      • TEMPLATES设置中的context_processor选项中加入:'django.template.context_processors.media',
  3. 在项目urls文件中
    • from django.conf import settings
    • from django.conf.urls.static import static
    • 在文件最后加上: +static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
  4. 在模板文件中引用:

转载于:https://www.cnblogs.com/dreamkeeper/p/7749439.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值