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

目录结构自行修改。

个人推荐第一种方式。