django添加css文件,Django 如何管理 css 等静态文件

django的template确实很强大,但是我们不可能把CSS文件也嵌入到template中。

但是CSS又不能简单的放在template目录下让template调用,因为django的目录结构是由urls.py这个文件来指定的,凡是没有指定的路径,外界都不能访问。

所以,最好的办法,是指定一个目录,该目录下所有的文件都能够被匿名用户访问。

虽然django的官方文档很详细,但是,一般人还是很难看懂其中staticfiles app到底是在扯什么东西。

好在django默认建立的project的settings.py文件中有MEDIA_ROOT,MEDIA_URL等选项。去网上搜索了一把,找到了一篇文章(墙外),差不多可以解决这个问题。虽然,貌似没有staticfiles神马的用起来方便。

首先,在settings.py文件中定义(以下代码都是写文章时候手打的,如有错误请留言指正)

MEDIA_ROOT=os.path.join(os.path.dirname(__file__),'media').replace('\\','/') #如果是*nix系统,不需要replace函数

MEDIA_URL='/media/' #末尾一定要加上/

ADMIN_MEDIA_PREFIX = '/media/admin/' #填啥都可以,就是不能跟MEDIA_URL一样

然后,在urls.py文件中:

from django.views.static import *

from django.conf import settings

#...

#以下是urlpatterns中的

(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT})

做完这些之后,测试一下 yourdomain.com/media/default.css

仅仅输入 yourdomain.com/media/ 是看不到任何东西的。

最后,如果没有什么问题,那么,在template的html文件中,可以直接这么调用css以及image等文件啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值