问题描述
- 使用django、odoo等框架开发的服务端,下载某个文件后,又对文件进行了修改,然后重新下载发现还是修改之前的文件。
- 过一段时间、或首次更换其它浏览器又能下载新版本的文件。
- 本地测试时,只有使用局域网或外网地址下载会出现此问题,使用127.0.0.1或localhost下载无此类问题 。
问题原因
服务端对该链接做了缓存,第二次下载时,下载的是缓存中的内容。这个问题原因时多次测试分析得到的结果,并未看源码。
解决方案
经过分析得出缓存是使用下载链接
作为key来保存的。所以,只要保证每次的下载链接的唯一性即可解决。也就是在链接后方提供任意参数。
比如:
原下载连接为http://xxx:8080/opt/temp/test.docx
,
那么将下载链接改为http://xxx:8080/opt/temp/test.docx?timestamp=1634397819&id=3
即可(通过时间戳和用户id保证了下载链接的唯一性)。
解决方案很简单,也就不想考虑什么其它方案了。