我有一个 django 应用程序在 digital ocean 空间上存储静态图像。我可以通过执行以下操作轻松地在我的模板中显示这些静态图像:<img>{% static 'images/my_image.png' %}</img>
如果我在加载后检查 HTML 页面,我会看到如下内容:https://nyc3.digitaloceanspaces.com/nameofmyspace/nameofmyspace-space-static_DEV/images/my_image.png?AWSAccessKeyId=XXXXXXXXXXXXXX&Signature=XXXXXXXXXXXXXXXXXX%3D&Expires=1621600823
但现在我想使用 javascript 动态更改此图像。
所以我尝试了:document.getElementById(id+"dynamicImage").src = "{% static 'images/my_image_2.png' %}";
这几乎可以工作,但图像无法加载。原因是在检查了 src
之后javascript提供的:https://nyc3.digitaloceanspaces.com/nameofmyspace/nameofmyspace-space-static_DEV/images/my_image.png?AWSAccessKeyId=XXXXXXXXXXXXXX&Signature=XXXXXXXXXXXXXXXXXX%3D&Expires=1621600823
你可以看到任何有 &
的地方它附加了 amp;
给它。
这样做的正确方法是什么?
我可以想到 2 种方法来纠正这个问题,但它们看起来很老套。
<img id = 'my_image' hidden >{% static 'images/my_image.png' %}</img>
对于我计划使用的所有链接,然后使用 let URL = document.getElementById("my_image").innerHTML;
在 javascript 中访问此 URL .这不会是更新的噩梦,但看起来很老套,必须是更好的方法。 最佳答案
我还不能发表评论,但我是用 AWS 这样做的需要做的是生成一个base64图像URL并将该“复制”图像发送到前端,然后使用JS做你想让用户做的任何事情,即使你想修改图像,你也可以随时保存图像为其原始名称并将“file_over_write”设置为True
关于javascript - 如何使用 JavaScript 包含 Django 静态 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67636484/