我有一个带有前端的新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
脚本已按预期加载。而且据我了解,该脚本由于某种原因会阻止缓存。
那么,那部分我缺少什么?预先感谢您的澄清
答案 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/
目录中寻找文件。