Django中的可变静态文件名

时间:2019-06-04 11:19:52

标签: django django-staticfiles

我有很多模板文件,其末尾带有以下脚本:

    {% block footer %}
        <script src="{% static 'js/jquery-3.3.1.min.js' %}"></script>
    {% endblock %}

在某个时候,我删除了文件'js/jquery-3.3.1.min.js'并将其替换为较新的版本js/jquery-3.4.1.min.js

我不想将所有模板文件手动更新为新文件名。我可以使用任何快捷方式吗?像这样:

    {% block footer %}
        <script src="{% static 'js/{{THE_LATEST_JS_FILE_NAME}}' %}"></script>
    {% endblock %}

更新

当前解决方案(基于@Pranav Totala的提示):

base.html文件中,声明变量:

    {% with THE_LATEST_JQUERY_FILE_PATH="js/jquery-3.3.1.min.js" %}
        {% block footer %}
        {% endblock %}
    {% endwith %}

child_001.html中:

    {% extends "base.html" %}
    ...
    ...
    {% block footer %}
        <script src="{% static THE_LATEST_JQUERY_FILE_PATH' %}"></script>
        ...
        ...
    {% endblock %}    

对此,任何改进都是值得欢迎的。

1 个答案:

答案 0 :(得分:0)

您可以

{% extends index.html %}
{% extends base.html %}

{% block allscripts %}

THE_LATEST_JS_FILE_PATH='js/jquery-3.4.1.min.js'
 <script src="{% static THE_LATEST_JS_FILE_PATH %}"></script>

{% endblock %}

并在base.html和index.html中创建要在其中添加这些模板的块

{% block allscripts %}
{% endblock %}

如果您已经在{{ }}中,也无需使用{% %},这使其成为python代码