django处理静态文件

转载自 http://www.cnblogs.com/wswang/p/5519101.html

静态文件指的是js css 还有图片这些,配置方法如下

1. 在设置文件(settings.py)中,installed_apps中添加 django.contrib.staticfiles

    然后设置static_url  

1
STATIC_URL  =  '/static/'

2. 在模板中的使用方式如下  

1
2
{ %  load staticfiles  % }
<img src = "{% static " my_app / myexample.jpg " %}"  alt = "My image" / >

这种方式提供的是一种相对路径,当你将环境切换到CDN的时候会方便很多

当然也可以用简单一些的方法---直接提供一个静态文件的url,不过在CDN中就要修改才可以使用了

1
/ static / my_app / myexample.jpg

3. 把你的文件都放在一个文件夹下,比如

1
my_app / static / my_app / myimage.jpg

  

注:当debug设置True的时候上面的方法可以,但是False的时候会提示not found的错误 

 

当debug设置为Fales的时候,设置方法如下(增加静态文件url,使用 django.contrib.staticfiles.views.serve()来寻找静态文件):

1
2
3
4
5
6
from  django.conf  import  settings
from  django.conf.urls.static  import  static
 
urlpatterns  =  [
     # ... the rest of your URLconf goes here ...
+  static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)

注:也不推荐实际环境中用  

 

当你有多个静态文件目录的时候可以使用下面的方式,设置STATICFILES_DIRS: 

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

 

注:django寻找静态文件默认找到地一个就会返回,不再进行后续查找,所以要注意安排顺序及目录 

 

 部署的步骤:

1. 设置STATIC_ROOT:

1
STATIC_ROOT  =  "/var/www/example.com/static/"

2. 执行collectstatic命令:

1
$ python manage.py collectstatic

这会把静态文件拷贝到你设置的static_root目录下(这样可以更方便的和nignx集成,权限管理也更方便)

  

参考链接见(django文档最详细):

http://blog.youkuaiyun.com/WaitForFree/article/details/39815507

http://blog.sina.com.cn/s/blog_6c663fa50101gope.html

https://docs.djangoproject.com/en/1.9/howto/static-files/

https://docs.djangoproject.com/en/1.9/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve      

转载于:https://www.cnblogs.com/robinunix/p/7084537.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值