如何将js脚本从html连接到Django static

时间:2018-11-10 14:15:25

标签: javascript python django

我有一个带有前端的新Django项目,最初根本不是为Django写的,所以我无法连接此脚本:

<script>
    document.body.appendChild(document.createElement('script')).
    src='js/main_script.js?r='+Math.floor(Math.random()*99999999999999999999);
</script> 

文件js/main_script.js位于静态文件夹中,其他js脚本已按预期加载。而且据我了解,该脚本由于某种原因会阻止缓存。

那么,那部分我缺少什么?预先感谢您的澄清

1 个答案:

答案 0 :(得分:2)

您应该删除那些+Math.floor(Math.random()*99999999999999999999)部分,并对静态文件缓存控制使用正确的解决方案

https://docs.djangoproject.com/en/2.1/ref/contrib/staticfiles/#manifeststaticfilesstorage

UPD,以回应以下评论

假设我们有

STATIC_ROOT = '/var/web/chick_static/'
STATIC_URL = '/chick-static/'

然后,当我们使用static template tag Django转换时
来自

<script src="{% static 'js/main_script.js' %}"></script>

<script src="/chick-static/js/main_script.js"></script>

Django也将在/var/web/chick_static/目录中寻找文件。