django中静态文件的使用
记得我刚刚开始接触django的时候,对于静态文件的引用始终一头雾水,按照网上说明的添加代码就是不好使。 今天再回头看看,突然发现以前自己还真是笨阿!补一篇记录算是弥补以前的缺憾了~ django版本1.5.3 目录结构:
projectname
----projectname
--------templates
------------base.html
------------appname
----------------a.html
--------media
------------mp3
------------flv
--------static
------------img
----------------s.jpg
------------css
------------js
--------settings.py
--------urls.py
----manage.py
方式一
setting.py中添加、修改以下代码
import os
SITE_ROOT = os.path.dirname(__file__)
STATIC_ROOT=''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
SITE_ROOT+STATIC_URL, #注意逗号!
)
urls.py修改如下
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
用<img name="a" src="/static/img/s.jpg"/>
进行引用。
方式二
避开static相关,用media。
settings.py:
MEDIA_ROOT = os.path.join(os.path.dirname(__file__),'media/').replace('\','/')
MEDIA_URL = '/site_media/'
urls.py:
from django.conf import settings
url(r'^site_media/(.*)$','django.views.static.serve',
{'document_root':settings.MEDIA_ROOT}),
<img name="a" src="/site_media/img/a.png"/>
这里的set_media和上面urls.py中的名要对应。
目录结构自行修改。
个人推荐第一种方式。