Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298403
  • 博文数量: 240
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-04 18:14
文章分类

全部博文(240)

文章存档

2017年(8)

2014年(4)

2013年(15)

2012年(4)

2011年(14)

2010年(55)

2009年(140)

我的朋友

分类: Python/Ruby

2013-05-31 02:31:15

网站的css js 和一些图片等非程序相关的文件,可以看成是静态文件。怎么正确配置,才能让Django网站解析到静态文件呢?
简明来说,要注意两个文件:settings.py  url.py。
Django 1.3之前只有MEDIA_ROOT,不管是网站静态文件(js、css等), 还是用户上传的文件都在同一个目录下。而 1.3开始将两个目录隔离开了。

一、1.3 之前将静态文件和用户文件混放的方法:
1、settings.py:
  1. import os
  2. MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media')
  3. # MEDIA_URL = '/media/'
* 注意: 我们的静态文件在根目录下的static文件里,需要自己创建,如果文件夹名不一样,join的参数改成自己起用的名字.
2、urls.py:
  1. from django.conf import settings
  2.     (r'^site_media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
* 注意:site_media,这个可以随自己喜欢的名字,建议参考Django最佳实践做法。
3、最后就是如何在templates里使用静态文件了:
  1. <script type="javascript/text" src="/site_media/js/config.js"></script>
  2. <link rel="stylesheet" type="text/css" href="/site_media/css/contents.css"/>
  3. <img src="/site_media/images/logo.ipg" alt=""/>
4、这样的配置,在开发环境中式能正常解析的,在产品部署环境中,只需修改settings文件的
MEDIA_URL = '/media/' 需要改成实际的域名  MEDIA_URL = ''

二、1.3 之后将静态文件和用户文件独立存放的方法:
1、settings.py:
  1. STATIC_PATH = './static'
2、urls.py:
  1. from django.conf import settings
  2.     (r'^site_static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_PATH}),
3、在工程目录创建 static 目录作为存放静态文件的目录
4、html 中引用:
  1. <script type="javascript/text" src="/site_static/js/config.js"></script>
  2. <link rel="stylesheet" type="text/css" href="/site_static/css/contents.css"/>
  3. <img src="/site_static/images/logo.ipg" alt=""/>

**** 以上两种方法推荐使用第二种,第一个 media 可以存放用户上传的文件,第二中专门用来存放服务器静态文件.
阅读(2272) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~