Django静态配置 static与media

Django静态配置 static与media

看了几个写media和static的,感觉同质性好大,可能对具体问题没有帮助,所以我写点自己的看法,如有错误往指出。

1:static

我们在项目创建一个文件夹,叫static(其他名字也行),里面一般放js,css,img啥的,这个随意。

接着我们在setting.py中设置关联到文件夹

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static(文件夹的名字)'),
]
# 这一步的意思是我把静态文件放在static文件夹下,后面我可以用 {% xxx 'static文件夹下的路径' %} 去拿到文件

此时我们看到上面的xxx,其实是要给他们一个名称

STATIC_URL = 'static/'
# 这一步的意思是 {% xxx 'static文件夹下的路径' %} 中的xxx就是static

这个时候就可以拿到static文件夹下的文件了

# 其实 {% xxx 'static文件夹下的路径' %} == ip/xxx/static文件夹下的路径 这个url路径,前一个是模板语言写法(一般用于css引入)渲染后其实和后面一样,后一个直接写死(一般用于a标签)
# 替换 {% static 'static文件夹下的路径' %} == ip/static/static文件夹下的路径

在部署的时候我们需要收集所有的文件到一个文件夹下

STATIC_ROOT = os.path.join(BASE_DIR, "file/")
# 所有静态文件会收集到file目录下,用于uwsgi直接调用

2:media

media和static一样,我们需要在url上能够拿到文件

同样,我们项目根创建一个media文件夹,然后关联上

MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')

这一个其实类似于STATIC_ROOT,只不过他没有收集,直接就是一个static收集后的状态,类似于file

而且它不可以用模板语法,只可以用 ip/xxx/media文件夹下的路径 来拿到

MEDIA_URL = "media/"
# 设置xxx=media

注意一下,django自动就处理static,使他能够 ip/static/xxx 访问,而media不行

所以我们要在django根目录的url.py里添加设置一下

# 这里就是配置 ip/media/xxx
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# urlpatterns += static(settings.MEDIA_URL(media), document_root=settings.MEDIA_ROOT(media文件夹))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值