0
我有一个包含图像的网页。我希望缓存使用图像的半身像?技术。但是,staticfiles将问题编码为'%3F',所以路径不再正确。如何使用Django的静态文件缓存半身像?
{% load staticfiles %}
<img src="{% static 'poll/img/test.jpg?v2' %}">
获取编译为。
<img src="/static/poll/img/test.jpg%3Fv2">
没有test.jpg%3Fv2
文件。所以它不显示。使用static
它工作正常。
{% load static %}
<img src="{% static 'poll/img/test.jpg?v2' %}">
按照预期编译完成。我想使用staticfiles
而不是static
,因为我服务的是来自云服务的静态文件。有没有办法来防止我的字符串路径的编码或解决问题的方法?
我会告诉你使用[ManifestStaticFilesStorage(https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#manifeststaticfilesstorage),但它为你使用是不可能的一项云服务。您的云服务是否提供了类似的缓存清除解决方案? – aumo
我使用S3和cloudfront。我可以清除记录并重新上传同名的上传文件名,希望新版本可以供所有人使用,并且浏览器不会保留旧版本。忽略远期缓存过期。这似乎有风险和不可靠。我宁愿只保留“?”我知道这会产生一个令人满意的结果。 我使用'django-compressor',它为css和js文件生成一个唯一的名称。可悲的是,它不支持图像。 – Damgaard
好吧,我想你可以用'staticfiles'的模板标签代码编写一个自定义模板标签,但是可以按照你需要的方式处理GET参数。 – aumo