django 报错 ImproperlyConfigured at / Empty static prefix not permitted

这里写图片描述

上图是出现问题的提示以及解决后的图。

原因: 
  django部署方式比较特别,采用静态文件路径:STATICFILES_DIRS的部署方式,之前你写的相对路径,绝对路径因为缺少静态文件路径而全部失效…

下面是解决过程=》 
首先默认你在static下分类好不同文件夹 css、js、image等。static和templates处于同级目录。

||Step one:

/* Django的映射机制,这里填static或者其他什么英文都不重要 */

STATIC_URL = '/static/'
  • 1

/* 部署静态文件时(python manage.py collectstatic)所有的静态文静聚合的目录,必须为绝对地址 */

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
  • 1

/* 设置图片等静态文件的路径 */

STATICFILES_DIRS = (
    ('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
    ('js', os.path.join(STATIC_ROOT, 'js').replace('\\', '/')),
    ('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/')),
    ('fonts', os.path.join(STATIC_ROOT, 'fonts').replace('\\', '/')),
)
  • 1
  • 2
  • 3
  • 4
  • 5

||Step two:

在urls.py文件中加上以下内容:

...
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', VAapp.index),
    url(r'^index/$', VAapp.index),
    ...
]
urlpatterns += staticfiles_urlpatterns()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

||Step three:

在base.html中第一行加入

{% load staticfiles %}

猜你喜欢

转载自blog.csdn.net/zhangyu4863/article/details/80188078