Я подозреваю, что проблема в том, что в вашем файле настроек нет процессора контекста staticfiles. По этой причине /static/
не вставляется туда, куда вы положили {{ STATIC_URL }}
.
Это так же просто, как положить
'django.core.context_processors.static',
В список контекстных процессоров (TEMPLATE_CONTEXT_PROCESSORS
) в вашем файле settings.py.
Обновление
Я добавил это в TEMPLATE_CONTEXT_PROCESSORS, но все равно это не сработало. - гуру 3 часа назад
Добавление 'django.core.context_processors.static'
в список процессоров контекста действительно исправило вашу проблему, потому что, как вы можете видеть, она вставляет значение для STATIC_URL
везде, где оно видит {{ STATIC_URL }}
в ваших шаблонах. Ошибка в том, что вы изменили значение STATIC_URL
на "/home/user1/djangoblog/blog/static/"
, вероятно, потому что вас смутили некоторые ответы здесь.
Измените значение STATIC_URL
назад на '/static/'
, чтобы строка выглядела
STATIC_URL = '/static/'
Это решит вашу проблему.
Шаблоны Django просто помещают все, что находится в переменной, в шаблон . Им все равно, что это такое или что это представляет Если значение STATIC_URL равно /home/user1/djangoblog/blog/static/
, то оно покорно вставляет /home/user1/djangoblog/blog/static/
везде, где видит {{ STATIC_URL }}
, поэтому вы видите
<img src="/home/user1/djangoblog/blog/static/images/a.jpg" />
всякий раз, когда он отображает шаблон, содержащий <img src="{{ STATIC_URL }}images/a.png" />