繁体   English   中英

如果路径由 html 中的上下文提供,如何链接 django 中的 static 文件?

[英]How to link static files in django, if the path is provided by the context in html?

这是我的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">
...

为什么它不工作? 有没有办法做到这一点? 如果路径由 html 中的context提供,如何链接 static 文件?

假设“css”是您的上下文变量,您应该能够执行以下操作。 基本上去掉'css'变量周围的引号。

<link rel="stylesheet" href="{% static css %}">

您应该将<link rel="stylesheet" type="text/css" href="/static/temp/css.css">直接添加到您的 index.html 中。 这样它就会自行处理,你不需要将它作为上下文传递。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM