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」字段。不確定這是否相關。
感謝您的幫助。