来自S3的Django缓存映像

来自S3的Django缓存映像,django,caching,amazon-s3,memcached,Django,Caching,Amazon S3,Memcached,好的,我有一个(简单的)问题: 我使用django存储和boto直接从S3提供静态文件(所有src链接都来自S3)。我使用memcached在apache和webpartion上工作。 现在,在我的一个模板中,我想缓存一个大图像。我有: {% import cache %} {% cache 86400 fragment_name %} <img src="{% static 'img/large_image.png' %}" alt="" /> {% endcache %} 图像

好的,我有一个(简单的)问题:

我使用
django存储
boto
直接从S3提供静态文件(所有
src
链接都来自S3)。我使用memcached在apache和webpartion上工作。 现在,在我的一个模板中,我想缓存一个大图像。我有:

{% import cache %}
{% cache 86400 fragment_name %}
<img src="{% static 'img/large_image.png' %}" alt="" />
{% endcache %}
图像是否应该第一次缓存86400秒,下一次从缓存加载

我是做错了什么还是不明白什么?


您显示的标题没有提供任何关于文件是否已缓存的确凿证据。这可以通过查看HTTP状态得出结论。如果为200,则该文件尚未缓存。然而,chrome开发者工具有时会提供错误的信息。在这种情况下,“大小”字段将显示“”

感谢您的回答,并对我的答复延迟表示抱歉。我在各种浏览器和操作系统中搜索。我的结论是,缓存处理没有公开行为。例如,在Linux Mint Chrome中,虽然图像正在被缓存(可以在
~/.cache/chromium/Default/cache
中看到它们),但当我看到开发人员工具(网络选项卡)的输出时,所有图像都具有
状态代码:200 OK
(重新下载)。但当我用Windows 7 Chrome测试它时,所有图像都有
状态代码:200 OK(从缓存中)
。但是,正如我所解释的那样,缓存依赖于图像发送的标题,浏览器通常会尊重它。我删除了
过期
标题并重写
缓存控制
,只包括
最大年龄,s-max-age,公共
。在2016年,不同浏览器和操作系统之间的这种不平衡是非常微不足道的。再次感谢您的想法和回答!好啊我发现了哪里出了问题。在我的FF linux mint中,在地址栏中的
about:config
之后,
browser.cache.memory.enable
设置为True,而
browser.cache.disk.enable设置为False。一旦我将
browser.cache.disk.enable设置为True,一切正常!很高兴知道事情已经解决了。
Cache-Control: max-age=604800, s-maxage=604800, must-revalidate
Expires: Thu, 31 Dec 2099 20:00:00 GMT
Last-Modified: Wed, 27 Apr 2016 11:22:07 GMT
Server: AmazonS3
{% import cache %}
{% cache 86400 fragment_name %}
<img src="{% static 'img/large_image.png' %}" alt="" />
{% endcache %}
Cache-Control: max-age=604800, s-maxage=604800, must-revalidate
Expires: Thu, 31 Dec 2099 20:00:00 GMT
Last-Modified: Wed, 27 Apr 2016 11:22:07 GMT
Server: AmazonS3