Проблема загрузки логотипа в разных URL в Django
У меня такой же html для Tools.html
и home.html
, но я понял, что логотип можно загрузить в этом URL:
path('',views.home),
Но в этом URL я не вижу логотип, а также фавикон:
path('Tools/', views.Tools ),
просмотров:
def Tools(request):
p=product.objects.filter(category__name='Tools')
return render(request,'Tools.html',{'p':p})
def home(request):
p=product.objects.filter(category__name='home')
return render(request,'home.html',{'p':p})
Урлы:
urlpatterns = [
path('Tools/', views.Tools ),
path('',views.home),
]
следующие коды для favicon и логотипа в html файле:
<link rel="icon" type="image/x-icon" href="static/logo.png">
<img class="img" width="270px" src="static/logo.svg">
Почему это происходит?
Не следует жестко кодировать static/logo.png
, правильнее использовать {% static 'logo.png' %}
. Тогда он всегда будет искать в вашей папке static
. Вам просто нужно запустить шаблон с {% load static %}
. Предположим, что вы установили в настройках что-то вроде:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
если вы храните такие файлы в папке your_project/static
, это должно работать для каждого уровня на каждом приложении.
Больше информации в Django DOCS