生产与开发环境下的Django静态文件配置

    受Django版本更新的影响,其静态文件配置很乱,网上有各种说法,其实大多有道理的,只是没说明是针对哪个版本的Django。但1.4版本(可能包括其之后的版本)静态文件配置相当简单,在此记录下。

    开发环境  

     以Django 1.4.5版本举例,在Pycharm 2.7.3上开发(为Pycharm打下广告,这货还真不赖,对Django的支持相当好,就连移动模板位置她都会自动跟踪),步骤如下:
  • 新建Django project untitled,
  • 再用manage.py startapp hello建一个hello app,
  • 最后在hello app下建一个static目录用来存放静态文件,
  • 运行manage.py runserver,访问http://127.0.0.1:8000/static/a.txt,就成功访问静态文件了,
  • 目录结构如下:
│  manage.py
│
├─hello
│  │  models.py
│  │  tests.py
│  │  views.py
│  │  __init__.py
│  │
│  └─static
│          a.txt
│
├─templates
└─untitled
        settings.py
        urls.py
        wsgi.py
        __init__.py

    以上的静态文件访问无需对Django做任何配置,因Django自动开启了settings.py文件下INSTALLED_APPS的'django.contrib.staticfiles'。这里并未在urls.py里设置以下的代码,虽网上很多说这是必需的,但至少在1.4版本下是非必需的

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    urlpatterns += staticfiles_urlpatterns()

    现在能够确认的是Django处理静态文件的是下面这个库文件:

\Lib\site-packages\django\contrib\staticfiles\finders.py

    生产环境

    生产环境下一般是把静态文件放在项目根目录下的static目录下。以百度应用引擎(BAE)为例:

  • 在项目根目录下创建如上面的的示例代码中的目录static,并在settings.py中相应设置目录
  • 运行Django脚本manage.py collectstatic,收集所有静态文件至其之下,方便服务器处理
  • 在BAE的app.conf中配置静态文件映射,
    其实本身静态文件是交给Nginx之类的服务器处理映射的,但在开发环境下Django为方便开发,可以用内置的服务器代为处理,所以才有了以上的两种配置。

    PS:测试过程中发现BAE竟对静态文件的后缀名大小写敏感,本地开发环境下却没有此现象。

参考:
http://blog.yangyubo.com/2012/07/26/django-staticfiles/
http://www.cnblogs.com/bourneli/archive/2013/01/21/2869327.html



转载于:https://my.oschina.net/leopardsaga/blog/144901

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值