Django:从静态文件目录中的js引用静态文件

Django: reference static file from js in static file directory

我正在尝试从我的 Django 项目的静态文件目录中的 js 文件调用静态文件。
这是一个例子。
在我的模板中,我通过以下方式从静态文件调用 js:

{% load staticfiles %}
...
<script src="{% static 'js/init.js' %}"></script>
...

到目前为止没有问题。
因此,我有一个名为 init.js 的静态文件,它具有以下代码行的功能:

global: { href: 'css/style.css', containers: '70em', grid: { gutters: ['2.5em', 0] } },

其中init.js是静态文件,css/style.css是静态文件文件也是。
按照以下方式自然更改代码会导致无法识别 python/Django 代码
[=13= 的 init.js 文件出现问题]

{% load staticfiles %}
global: { href: "{% static 'css/style.css' %}", containers: '70em', grid: { gutters: ['2.5em', 0] } },

有没有像这种情况一样直接从另一个静态文件调用静态文件的方法?
谢谢!

您可以将其保存在模板中的某处

<script type="text/javascript" charset="utf-8">var tem_css_location = {% static 'css/style.css' %}</script>

现在您可以在 init.js 中调用 tem_css_location:

<script type="text/javascript" charset="utf-8">var tem_css_location = {% static 'css/style.css' %}</script>
<script src="{% static 'js/init.js' %}"></script>

在 init.js 中将如下所示:

global: { href: tem_css_location, containers: '70em', grid: { gutters: ['2.5em', 0] } },

让我提出一个解决问题的不同方法。考虑在视图中获取静态文件位置,然后将其呈现给模板。如果这符合您的需要,您可以简化您的 js 并完全回避这个问题。

from django.templatetags.static import static

url = static('x.jpg')