如何在django2.0中加载静态文件

时间:2018-10-21 17:01:28

标签: python django django-templates

我在django2.0(来自django1.4)中加载静态文件时遇到困难。这是我到目前为止的内容:

# urls.py
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

# settings.py
TEMPLATES = [
            ...
            'builtins': [
              'django.contrib.staticfiles.templatetags.staticfiles',
             ],
]
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = ''
STATICFILES_DIRS = [
  os.path.join(SITE_ROOT, "static"),    
]

我在以下位置有一张图片:

[my_project_root]/static/img/image.png

现在,如果直接进入网址,我会得到404:

http://localhost:8000/static/img/image.png

另外,如果我“通过模板”进行操作,我还会得到404:

{% load static %}
<img src="{% static 'img/image.png' %}" alt="My image">

我需要在此处添加什么以提供静态文件?

1 个答案:

答案 0 :(得分:0)

这是一个棘手的设置。我需要将STATIC_ROOT更改为:

STATIC_ROOT = 'static/'

否则,如果使用STATIC_ROOT ='',它将在[project_root]/img/image.png中查找img文件。