static Django中,静态资源的存放通过设置STATIC_URL, STATICFILES_DIRS来设置 一般STATIC_URL设置为:STATIC_URL=’/static/’,这个
.
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}),]
.