我有一个前端的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
脚本将按预期加载。据我所知,这个脚本出于某种原因阻止了缓存。
那么,我在这部分遗漏了什么?提前感谢的任何澄清
您应该删除那些+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/'
然后当我们使用静态模板标签Django从转换
<script src="{% static 'js/main_script.js' %}"></script>
至
<script src="/chick-static/js/main_script.js"></script>
此外,Django将在/var/web/chick_static/
目录中查找文件。