我目前正在将项目中的所有静态文件引用迁移到django 1.5引入的新{%static%}标记,但是我遇到了问题,在某些地方我使用变量来获取内容。使用新标签,我无法解决此问题?
当前代码:
<img src="{{ STATIC_URL }}/assets/flags/{{ request.LANGUAGE_CODE }}.gif" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />
应该是什么(这不起作用):
<img src="{% static 'assets/flags/{{ request.LANGUAGE_CODE }}.gif' %}" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />
你应该可以使用add模板过滤器连接字符串:
{% with 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' as image_static %} {% static image_static %} {% endwith %}
你尝试执行的操作不适用于static template标记,因为它仅采用字符串或变量:
static
{% static "myapp/css/base.css" %} {% static variable_with_path %} {% static "myapp/css/base.css" as admin_base_css %} {% static variable_with_path as varname %}