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}),
]
posted @ 2017-04-18 15:36  lykops  阅读(179)  评论(0编辑  收藏  举报