【问题标题】:python django url shows old image when exachangingpython django url在交换时显示旧图像
【发布时间】:2020-02-21 13:47:07
【问题描述】:

当运行 Django 服务器并点击 URL http://127.0.0.1:8000/media/pictures/h2.jpg 时,我得到了请求的图像 (jpg)。

现在我通过一个文件交换 jpg,该文件也称为 h2.jpg,但当我再次调用相同的 URL 时 它仍然显示旧图片。

如何处理?

我需要由后端自动完成,或者以某种方式 --> 无需用户操作

Django version 2.1.7

【问题讨论】:

  • 由于您的浏览器缓存了图片,请在浏览器中按F5 + SHIFT重新加载所有资源。
  • 尝试在带有? 的文件末尾添加一些数字(如当前日期时间、随机数等...) 例如:h2.jpg?1234567 浏览器将理解该 url 是新的并新加载

标签: django image


【解决方案1】:

你可以使用这个中间件

from django.utils.cache import add_never_cache_headers

class NoCachingMiddleware(object):
    def process_response(self, request, response):
        add_never_cache_headers(response)
        return respons

从这个问题: https://stackoverflow.com/a/13489175/11027652

【讨论】:

    【解决方案2】:

    所以,现在新文件的文件名中包含了时间戳。这样我可以先读取文件夹中所有可用的文件,然后使用第一个文件创建一个新的动态文件路径。

    【讨论】:

      猜你喜欢
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2018-03-28
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      相关资源
      最近更新 更多