Как загрузить статический файл в django2.0 - PullRequest
0 голосов
/ 21 октября 2018

У меня проблемы с загрузкой статических файлов в 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

Теперь, если я перейду непосредственно к URL, я получу 404:

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

Кроме того, если я делаю это "через шаблон", я также получаю 404:

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

Что мне нужно добавить сюда для обслуживания статических файлов?

1 Ответ

0 голосов
/ 21 октября 2018

Это была сложная настройка.Мне нужно было изменить STATIC_ROOT на:

STATIC_ROOT = 'static/'

В противном случае, с STATIC_ROOT = '', он будет искать файл img в [project_root]/img/image.png.

...