我正在建立一个网站,要求用户登录才能访问任何内容,因此所有视频和图像资产都通过对php文件的请求来提供,例如:
example.com/media/?clip=668&q=h
服务器检查是否允许该用户,如果允许,则返回一个mp4文件,“ q = h”表示“我想要半分辨率视频”
和
example.com/media/?clip=668&q=t
回复一个jpeg文件,“ q = t”表示“我想要缩略图”
在我的网站上一切正常,我已经设置了mime类型和所有内容。但是,Chrome永远不会缓存任何这些资产,因此我的带宽在飞速增长。在Chrome Inspector的“网络”标签中,我的css和js文件来自“(来自内存缓存)”或“(来自浏览器缓存)”,但是我所有的重资产(图像和视频)都没有缓存。
我如何让浏览器缓存这些内容?
答案 0 :(得分:0)
感谢@tim!
问题出在我与媒体一起提供的标题中。我在Chrome浏览器中查看了响应,并说:
Cache-Control: must-revalidate, no-cache, no-store
我没有设置这些,它必须是apache的默认值,因为我正在通过脚本提供服务?无论如何,要修复,我只是添加了:
Cache-Control: public
到我的PHP文件,它似乎正在工作!