记得我刚刚开始接触django的时候,对于静态文件的引用始终一头雾水,按照网上说明的添加代码就是不好使。
今天再回头看看,突然发现以前自己还真是笨阿!补一篇记录算是弥补以前的缺憾了~
django版本1.5.3
目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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中添加、修改以下代码

1
2
3
4
5
6
7
import os
SITE_ROOT = os.path.dirname(__file__)
STATIC_ROOT=''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
SITE_ROOT+STATIC_URL, #注意逗号!
)

urls.py修改如下

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

<img name="a" src="/static/img/s.jpg"/>进行引用。

方式二

避开static相关,用media。

settings.py:

1
2
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中的名要对应。

目录结构自行修改。

个人推荐第一种方式。