1
我已经设置了谷歌地图的覆盖(V 3.10)的JavaScript来显示服务器上生成的图像:谷歌地图地面覆盖层不缓存Django的服务动态图像
var overlay = new google.maps.GroundOverlay(url, MAP_BOUNDS, {map: gmap});
当URL指向一个静态网址,覆盖工作正常。但是,当它指向一个Django(v 1.4)动态url时,该图像显示正确,但在地图滚动时它不断向服务器发送对url的请求。例如:
url = 'localhost:8000/abcdef/maps/getMap'
在Django的urls.py:
url(r'^(?P<key>\S+)/maps/getMap/$', 'maps.views.getMap'),
网址重定向到这个代码:
@csrf_exempt
def getMap(request, key):
response = HttpResponse(mimetype="image/png")
im=Image.open('media/maps' + id + '/map.png')
im.save(response, 'PNG')
return response
所以,在我看来,存在的方式有些差异谷歌地图/浏览器正在为缓存目的处理图片,可能与HTTP头部中的某些内容有关。我该如何做到这一点,所以一旦图像被检索,它不会一直发出服务器请求?
通过检查浏览器控制台中的响应标题,看起来静态图像具有动态图像没有的“Content-Length”和“Last-Modified”字段。不确定这是否相关。
感谢您的帮助。