Django的静态文件服务 总结
安装
===============================================
在django1.3+,内置了stataic 模块,只需要在INSTALL_APPS里注释掉相关代码即可,对于1.3以下版本可以使用pip install django-staticfiles ,并把staticfiles添加到INSTALL_APP
配置
===============================================
在settings.py内配置相关变量,
MEDIA前缀表示保存用户上传的文件夹
STATIC前缀表示应用使用到的静态文件的所在文件夹,默认放在应用的static目录下,
如果需要增加静态文件夹,可以使用STATICFILES_DIRS = (‘/another_dir/’,) 元组进行配置
MEDIA_ROOT = ‘/home/dotcloud/data/media/’
MEDIA_URL = ‘/media/’
STATIC_ROOT = ‘/home/dotcloud/data/static/’
STATIC_URL = ‘/static/’
ADMIN_MEDIA_PREFIX = ‘/static/admin/’
在开发时查看MEDIA目录内容
===============================================
可向urls.py追加以下内容::
from hello import settings
if settings.DEBUG == True:
urlpatterns += patterns(”,
(r’^media/(?P<path>.*)$’, ‘django.views.static.serve’,
{‘document_root’: settings.MEDIA_ROOT}),
)
在生产环境下转移各应用 的静态static目录下的内容,由服务器进行静态文件处理
可执行以下命令::
$manage.py collectstatic -noinput
PS,本人认为media目录应该在服务器配置访问权限。
模板使用
===============================================
`django官方文档`_ 提到需要配置 TEMPLATE_CONTEXT_PROCESSORS
然后在 模板中这样应用 ::
<img src=”{{ STATIC_URL }}images/hi.jpg” />
或者使用模板tag::
{% load static %}
<img src=”{% get_static_prefix %}images/hi.jpg” />
处理多个静态文件时可以进一步简化为::
{% load static %}
{% get_static_prefix as STATIC_PREFIX %}
<img src=”{{ STATIC_PREFIX }}images/hi.jpg” />
<img src=”{{ STATIC_PREFIX }}images/hi2.jpg” />
.. note::
我在django1.2下按上面的说明配置无法取得static_url,参考资料修改如下方可。
setttings.py追加入以下代码::
TEMPLATE_CONTEXT_PROCESSORS = (
‘django.core.context_processors.debug’,
‘django.core.context_processors.i18n’,
‘django.core.context_processors.media’,
#’django.core.context_processors.static’,
‘staticfiles.context_processors.static’, #此处为手动安装staticfiles的写法
‘django.contrib.auth.context_processors.auth’,
‘django.contrib.messages.context_processors.messages’,
)
views.py::
from django.template import RequestContext
def index(request):
return render_to_response(‘index.html’,{},context_instance=RequestContext(request))
此后模板页可以使用 **{{ STATIC_URL }}** 变量
.. _django官方文档: https://docs.djangoproject.com/en/1.3/howto/static-files/</path>
建议继续学习:
- 使用django+celery+RabbitMQ实现异步执行 (阅读:5706)
- Django 中 "Data truncated for column xxx" 解决方法 (阅读:4990)
- apache+mod_wsgi+django在windows下的部署 (阅读:4790)
- Django框架ORM操作详解 (阅读:4717)
- python-django的中文编码总结 (阅读:4566)
- django中动态生成form表单 (阅读:4193)
- 回归简单,向Django说再见 (阅读:4139)
- 当使用 Nginx 做 Hash 时对动态文件和静态文件的处理 (阅读:3830)
- 在dotcloud上部署Django全程记录 (阅读:3848)
- Django数据库访问优化 (阅读:3524)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Falcon 来源: 雕刻时光
- 标签: Django 静态文件
- 发布时间:2012-05-28 13:20:39
-
[928] WordPress插件开发 -- 在插件使用 -
[134] 解决 nginx 反向代理网页首尾出现神秘字 -
[55] 整理了一份招PHP高级工程师的面试题 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 全站换域名时利用nginx和javascri -
[52] 海量小文件存储 -
[51] 用 Jquery 模拟 select -
[50] Innodb分表太多或者表分区太多,会导致内 -
[50] CloudSMS:免费匿名的云短信 -
[48] jQuery性能优化指南
