Проблема загрузки логотипа в разных URL в Django

У меня такой же html для Tools.html и home.html, но я понял, что логотип можно загрузить в этом URL:

path('',views.home),

Но в этом URL я не вижу логотип, а также фавикон:

path('Tools/', views.Tools ),

http://127.0.0.1:8000/

http://127.0.0.1:8000/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

Вернуться на верх