Django 静态文件配置
static
Django中,静态资源的存放通过设置STATIC_URL, STATICFILES_DIRS来设置
一般STATIC_URL设置为:STATIC_URL=’/static/’,这个static是在Django具体APP下建立的static目录,用来存放静态资源。
而STATICFILES_DIRS一般用来设置通用的静态资源,对应的目录不放在APP下,而是放在Project下
具体在模板文件中访问的时候,都是统一用:/static/资源名的方式,就可以访问到资源,不论具体的目录是APP下的static,还是project下的common_static, 都可以用/static/资源名的方式访问到。
为增强可移植性,在模板中可以用:STATIC_URL来代替具体的/static/来设置资源路径,但是需要在settings.py设置:
设置settings.py
在INSTALLED_APPS中要有’django.contrib.staticfiles’
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
TEMPLATES 中,context_processors中,加入django.template.context_processors.static
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, "templates/"),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.static'
],
},
},
]
新增STATICFILES_DIRS
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,"static/"),
]
模板中调用
<img src="{{STATIC_URL}}pic.jpg " />
media
设置settings.py
媒体文件的绝对路径:
MEDIA_ROOT = os.path.join(BASE_DIR, "file/")
媒体文件的相对路径:
MEDIA_URL = '/file/'
设置静态文件路径
STATIC_PATH = os.path.join(BASE_DIR, "file/")
urls.py 影射路径
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATICFILES_DIRS, 'show_indexes':False}),
url(r'^file/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.MEDIA_ROOT, 'show_indexes':False}),
]