摘要:
我应该如何引用django模板中把手 - 部件中的静态文件?如果我使用verbatim标签,我可以使用把手,但是我不能使用django的static标签.
细节
在将应用程序转换为Django时,我遇到了一个handelbars.js用于呈现ajax-call-results的部分.通过,其中包括" Django模板中的Handlebars.js ",我发现了{% verbatim %}标签.
一个简单的把手就可以正常工作.但我也有一个部分,根据结果动态显示图像,看起来像这样:
<img src="path/{{ result }}.png">
Run Code Online (Sandbox Code Playgroud)
现在虽然我可以手动设置路径,但是我相信Django最好引用你的静态文件,如下所示:
<img src="{% static 'path/file.png' %}">
Run Code Online (Sandbox Code Playgroud)
static_url不建议只获得常量,例如参见此博客
因此,除非某人有一个真正令人信服的理由来解决它,否则我认为最好使用该{% static %}方法.
天真的解决方案是将两种技术结合起来,并逐字地用verbatim/endverbatim喷涂模板.除了这看起来丑陋,难以辨认并且从一开始看似乎是一个坏主意的事实之外,它也不起作用.
{% verbatim %}
<!-- handlebars -->
{% endverbatim %}
<img src="{% static 'path{% verbatim %}{{ result }}{% endverbatim %}' %}">
{% verbatim %}
<!-- handlebars -->
{% endverbatim %}
Run Code Online (Sandbox Code Playgroud)
结果是泪流满面
TemplateSyntaxError at/
无法解析余数:''path {%'from''path {%'
有可能在后端生成正确的静态URL,并进行渲染.但是后端不应该知道我们想要在模板中显示什么图像.
只有解决方案可能是使用'relative'字符串(例如path/result.png)向后端额外调用后端,并要求正确的静态链接?这并不难,但需要额外的电话,但情况并非如此.
那么我该如何正确引用这些静态文件呢?
django templates django-templates django-staticfiles handlebars.js
(这个问题是关系到这一个)
我有一个web2py应用程序,我想用一些ember.js代码扩展.web2py和ember.js中模板系统的分隔符冲突(都是{{和}}).由于我的应用程序没有ember.js遗留问题,我想使用不同的分隔符编写ember.js代码.这可能吗?
我正在开发一个使用Django模板的网站,我必须生成包含成对卷曲引号的HTML.有没有办法禁用Django的代码块处理标签?像文字块标签这样的东西会很好,所以:
{% literal %}
{% LITERAL {{ BRACES }}
{% endliteral %}
Run Code Online (Sandbox Code Playgroud)
......会{% LITERAL {{ BRACES }}在输出中产生.