Как связать stati c файлы в django, если путь задан контекстом в html? - PullRequest
0 голосов
/ 25 апреля 2020

Вот мой views.py файл:

from django.shortcuts import render

def page(request):
    css = 'temp/css.css'
    return render(request, 'temp/index.html', {'css': css})

и templates/temp/index.html файл:

{% load static %}
<!DOCTYPE html>
<html>
    <head>
            <link rel="stylesheet" type="text/css" href="{% static '{{ css|safe }}' %}">
    </head>

    <body>
        Hello Page
    </body>

</html>

и static/temp/css.css файл:

* {
    width: 100vw;
    height: 100vh;
    background: red;
}

После рендеринга источник страницы:

<!DOCTYPE html>
<html>
    <head>
            <link rel="stylesheet" type="text/css" href="/static/%7B%7B%20css%7Csafe%20%7D%7D">
    </head>

    <body>
        Hello Page
    </body>

</html>

но я ожидаю

...
<link rel="stylesheet" type="text/css" href="/static/temp/css.css">
...

Почему это не работает? Есть какой-либо способ сделать это? Как связать файл stati c, если путь указан context в html?

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Предполагая, что css является вашей контекстной переменной, вы можете просто сделать следующее. В основном отбрасывайте кавычки вокруг переменной 'css'.

<link rel="stylesheet" href="{% static css %}">
0 голосов
/ 25 апреля 2020

Вы должны добавить <link rel="stylesheet" type="text/css" href="/static/temp/css.css"> к своему индексу. html напрямую. Таким образом, он позаботится о себе, и вам не нужно передавать его как контекст.

...