jj中的django语法

时间:2014-04-20 20:58:56

标签: javascript django templates syntax

我整个周末一直在努力解决这个问题。 我似乎无法弄清楚如何在Django模板中的脚本标记内加载静态图像。

如果你看一下这段代码。图像正确加载。 但我们试图通过javascript做同样的事情它不起作用。

我已经阅读了其他一些帖子,但他们都在谈论在javascript中使用变量。 并且没有人谈论{%static%}语法。

这是代码:

{% extends 'base.html' %}
{% load static %}
{% load dictionary_extras %}

{% block content %}
        <img src={% static 'lol2.jpg' %}>
        <canvas id="e" width="320" height="200" style="border:1px solid #d3d3d3;"></canvas>
        <script language="JavaScript">
            document.write('hello world.');
            var canvas = document.getElementById("e");
            var context = canvas.getContext("2d");
            var imageObj = new Image();
            imageObj.onload = function() {
            context.drawImage(imageObj,0,0);
            };
            imageObj.src = {% static 'lol2.jpg' %};
        </script>
{% endblock %}

谢谢!

2 个答案:

答案 0 :(得分:0)

在HTML中使用Django模板标签和在模板中使用Javascript代码之间没有区别。

确保您的Javascript代码正确无误并且因为您忘记添加单引号而失败:

{% static 'lol2.jpg' %}

答案 1 :(得分:0)

非常简单,请确保标签周围有引号:

imageObj.src = "{% static 'lol2.jpg' %}";

当您使用static标记时,它会呈现完整的网址,但为了使其成为正确的JavaScript或HTML标记,它还需要用引号括起来,例如:

<img src={% static 'lol2.jpg' %}>

渲染(取决于您的STATIC_URL设置):

<img src=/static/lol2.jpg>

应该是:

<img src="{% static 'lol2.jpg' %}">

将呈现给:

<img src="/static/lol2.jpg">