我有一个带有前端的新 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()*999999999999999999999)
部分,并使用正确的解决方案进行静态文件缓存控制
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/
目录中查找文件。
关于javascript - 如何将js脚本从html连接到Django静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53239828/