Django笔记:导入静态文件、媒体文件

问题:

Django服务启动后,网页上加载不了静态文件、样式或者媒体图片等。
在这里插入图片描述

[01/Nov/2018 11:38:14] "GET /media/goods/images/2_20170719161414_628.jpg HTTP/1.1" 404 2060
[01/Nov/2018 11:38:14] "GET /media/goods/images/2_20170719161405_249.jpg HTTP/1.1" 404 2060
[01/Nov/2018 11:38:14] "GET /media/goods/images/2_20170719161435_381.jpg HTTP/1.1" 404 2060

方法:

首先确定项目中已经有静态文件文件夹static或者media

# 项目文件下的settings.py添加

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")


# 相同位置urls.py
from django.conf.urls import url
from vueshop.settings import MEDIA_ROOT
from django.views.static import serve

urlpatterns = [
 	# 。。。。。。
    url(r'^media/(?P<path>.*)$', serve,{"document_root": MEDIA_ROOT}),
]

补充:

DEBUG为 True时django会默认帮我们处理静态文件,False则不是。
同样需要:

# urls.py

urlpatterns = [
 	# 。。。。。。
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': settings.STATIC_ROOT,
        }),
]


# settings.py
STATIC_ROOT = os.path.join(BASE_DIR, "static")
# STATIC_ROOT是Django 1.3新增的特性,保存在这个目录里面文件被当成静态文件处理

Django提供了一个方法自动地将所有的静态文件放在一起,把/static/映射到STATIC_ROOT,布署到生产环境的时运行
manage.py collectstatic
自动地STATICFILES_DIRS列出的目录以及各个App下的static子目录的所有文件复制到STATIC_ROOT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值