【发布时间】:2015-07-04 17:31:40
【问题描述】:
我有一个包含图片的网页。我希望使用 ? 缓存该图像?技术。但是,静态文件将问号编码为“%3F”,因此路径不再正确。
{% 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' %}">
Get 已按预期编译。当我从云服务提供静态文件时,我想使用 staticfiles 而不是 static。有没有办法阻止我的字符串路径的编码或问题的解决方法?
【问题讨论】:
-
我会告诉你使用ManifestStaticFilesStorage,但这是不可能的,因为你使用的是云服务。您的云服务是否提供类似的缓存清除解决方案?
-
我使用 S3 和云端。我可以清除记录并用相同的名称重新上传上传的文件名,希望新版本能够提供给所有人,并且没有浏览器会继续缓存旧版本。忽略遥远的未来缓存到期。这似乎有风险且不可靠。我更愿意只保留“?”我知道这会产生完全令人满意的结果。我使用
django-compressor,它为css 和js 文件生成一个唯一的名称。遗憾的是它不支持图片。 -
好吧,我猜你可以在后台使用
staticfiles的模板标签代码编写一个自定义模板标签,但按你需要的方式处理GET参数。
标签: django django-templates django-staticfiles