Javascript 在django中管理js库中的静态链接

Javascript 在django中管理js库中的静态链接,javascript,python,django,Javascript,Python,Django,所以我试图在我用django开发的网站上添加录音功能 我想做一些类似的事情,所以我开始尝试在不修改的情况下运行它 我使用了与上面链接的git中相同的html,将js/文件夹放在我的static/文件夹中,并简单地更改了以下几行(index.html,第32-33行) 为了 {%load static%} 这些js文件加载正确,但问题是,当我在我的网站上单击record时,我在django服务器上得到了一个“get/myapp/record/js/WebAudioRecorderWav.mi

所以我试图在我用django开发的网站上添加录音功能

我想做一些类似的事情,所以我开始尝试在不修改的情况下运行它

我使用了与上面链接的git中相同的html,将
js/
文件夹放在我的
static/
文件夹中,并简单地更改了以下几行(index.html,第32-33行)


为了

{%load static%}
这些js文件加载正确,但问题是,当我在我的网站上单击record时,我在django服务器上得到了一个
“get/myapp/record/js/WebAudioRecorderWav.min.js HTTP/1.1”404
错误

WebAudioRecorderWav.min.js
WebAudioRecorder.min.js
中调用。我试图在js文件中使用
{%loadstatic%}
技巧,但它不起作用

解决这个问题的正确方法是什么


提前感谢。

您应该使用
workerDir
设置来设置其他导入js文件的正确路径。您的录音机可能是在app.js中初始化的,在app.js中您不能使用像
{%static%}
这样的模板标记。最好的方法是在加载app.js之前在模板中创建一个全局变量:

在HTML模板中:

<script>var jsFilesPath = "{% static 'js/' %}"</script>
<script src="{% static 'js/app.js' %}"></script>

这不是
.workerDir
配置设置的作用吗?初始化
WebAudioRecorder
时,请尝试将其设置为
{%static'js%}
(这意味着您不能在
app.js
中这样做,但必须在HTML模板本身中这样做。)或者在模板设置
var jsFilesPath=“{%static'js%}中创建一个
var
并在app.js中使用它@dirkgroten谢谢,我照你说的做了,它成功了!这就是在我的模板中设置一个var,并在
app.js
中使用它。我唯一需要更改的是在
js
之后添加一个
/
,即
var jsFilesPath=“{%static'js/'%}”
。它帮助我找到了解决方案。很好的解释!
{% load static %}
<script src={% static "js/WebAudioRecorder.min.js" %}></script>
<script src={% static "js/app.js" %}></script>
<script>var jsFilesPath = "{% static 'js/' %}"</script>
<script src="{% static 'js/app.js' %}"></script>
if (typeof jsFilesPath !== "undefined") {
    audioRecorder = new WebAudioRecorder(sourceNode, {
      workerDir: jsFilesPath     // must end with slash
    });
}