javascript中的django语法

javascript中的django语法,javascript,django,templates,syntax,Javascript,Django,Templates,Syntax,我整个周末都在努力解决这个问题。 当我在Django模板中的脚本标记中时,我似乎不知道如何加载静态图像 如果你看看这个代码。图像加载正确。 但是wehn试图通过javascript做同样的事情,这是行不通的 我读过其他一些帖子,但都谈到在javascript中使用变量。 没有人讨论{%static%}语法 代码如下: {% extends 'base.html' %} {% load static %} {% load dictionary_extras %} {% block content

我整个周末都在努力解决这个问题。 当我在Django模板中的脚本标记中时,我似乎不知道如何加载静态图像

如果你看看这个代码。图像加载正确。 但是wehn试图通过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 %}
{%extends'base.html%}
{%load static%}
{%load dictionary_extras%}
{%block content%}
写(‘你好,世界’);
var canvas=document.getElementById(“e”);
var context=canvas.getContext(“2d”);
var imageObj=新图像();
imageObj.onload=函数(){
drawImage(imageObj,0,0);
};
imageObj.src={%static'lol2.jpg%};
{%endblock%}

谢谢

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

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

{% static 'lol2.jpg' %}

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

imageObj.src = "{% static 'lol2.jpg' %}";
当您使用
static
标记时,它会呈现完整的url,但为了使其成为正确的JavaScript或HTML标记,它还需要用引号括起来,例如:

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

呈现到(取决于静态URL设置):


应在哪里:

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

这将导致:

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


谢谢你的帮助。虽然这似乎不起作用。是的,我在编辑代码的时候忘记了引用。但它仍然不起作用。这似乎有一个明显的区别,因为我的标签与加载图片一起工作。但后者并没有,这条线似乎有问题。具有imageObj.src={%static'lol2.jpg%}的对象。如果我把它从javascript代码中排除。document.write命令工作并显示在页面上。但前提是我把这句话注释掉。否则,整个块将无法工作,document.write不会向页面写入任何内容。请不要在上面编辑并添加了单个缺少的引号
<img src="/static/lol2.jpg">