文档章节

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

Honghe
 Honghe
发布于 2013/07/16 12:21
字数 559
阅读 1834
收藏 8

    受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



© 著作权归作者所有

Honghe

Honghe

粉丝 58
博文 127
码字总数 35797
作品 3
福州
高级程序员
私信 提问
WEB平台DJANGO&VUE配置部署生产环境

在这篇文章中: 整体框架 一、安装和配置nginx 二、安装和配置uwsgi 三、配置访问vue 四、通过supervisor管理进程 中间可能遇到的坑 本文主要讲述了如何一步步在生产环境上部署django和vue,...

fanspring
2018/12/06
0
0
用 Django 的 Pipeline 优化网站前端

本文来自 @图拉鼎 的博客: 今天开始一步步优化网站,尽可能的让其响应更快、更省流量。第一步就是优化前端。 以前在玩Rails的时候,很羡慕它全自动化的Assets Pipeline,完全不用人操心就可...

红薯
2012/10/24
669
2
django 中式用静态文件(css,javascript)

Django模板中使用css, javascript 测试环境 (r'^css/(?P.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/css'}), (r'^js/(?P.*)$', 'django.views.static.ser......

晨曦之光
2012/03/01
1K
0
使用Django来处理对于静态文件的请求

使用Django来处理对于静态文件的请求 引言 本方法适用于linux+python2.7+django1.2,使用django自带的web服务。 同样也适用于sina app engine。 1、准备工作 准备css文件,准备js文件,准备i...

KavenSu
2014/06/04
63
0
让Nginx处理Django的静态文件

上次的《Django静态文件的配置》,说的主要是针对开发环境的配置。在开发中难免要处理网站的css js image等静态文件,不用顾及性能,安全的问题,交给Django内部处理好了;但如果正式部署到服...

我的去哈哈
2014/03/31
6.3K
2

没有更多内容

加载失败,请刷新页面

加载更多

Andorid SQLite数据库开发基础教程(2)

Andorid SQLite数据库开发基础教程(2) 数据库生成方式 数据库的生成有两种方式,一种是使用数据库管理工具生成的数据库,我们将此类数据库称为预设数据库,另一种是使用代码生成的数据库。...

大学霸
33分钟前
3
0
YecPad 开源啦!: 基于C#的功能强大的可编辑记事本文本编辑软件

JY Lin 开源:YecPad : 基于C#的功能强大的可编辑记事本文本编辑软件 YecPad 是一款基于C#编程语言开发的功能强大的可编辑记事本文本编辑软件。 可以进行文本文件的打开、保存、删除及编辑功...

YDOOK
40分钟前
4
0
StringBuilder 与 StringBuffer 的区别

StringBuffer是线性安全的,支持并发操作,适合多线程。 StringBuilder线性不安全,不支持并发操作,适合单线程。 也就是说他们俩区别就在于支不支持并发操作,使用上基本上类似...

无名氏的程序员
43分钟前
4
0
js 找数组中的最值

本文转载于:专业的前端网站➸js 找数组中的最值 背景: 2个数组以下 , 比如 [[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]] 找最值的时候,我一开始想用两个...

前端老手
52分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部