Laravel-Header und Caching in php

Habe ich eine kleine Bild-generator als Teil meiner laravel4 Anwendung. Es dauert etwa 700ms um das Bild zu erzeugen, und so habe ich begonnen, die Zwischenspeicherung der generierten Ergebnis auf meinem server und der Rückkehr, dass der browser statt und spart etwas Zeit.

Als die Bild wird sich nie ändern, einmal erzeugt, ich wollte sagen, der browser-cache, um das Bild lokal und ich haben dies mit dem folgenden code:

$path = $cacheFolderPath . $cacheFileName;

if (File::exists( $path )){
    $response = Response::make(File::get($path));
    $response->header('Content-Type', 'image/png');
    $response->header('Content-Disposition', 'inline; filename="'.$cacheFileName.'"');
    $response->header('Content-Transfer-Encoding', 'binary');
    $response->header('Cache-Control', 'public, max-age=10800, pre-check=10800');
    $response->header('Pragma', 'public');
    $response->header('Expires', date(DATE_RFC822,strtotime(" 2 day")) );
    $response->header('Last-Modified', date(DATE_RFC822, File::lastModified($path)) );
    $response->header('Content-Length', filesize($path));
    return $response;
}

Dieser sendet ein Bild mit status-code 200 OK an den browser mit den folgenden überschriften:

Cache-Control:max-age=10800, pre-check=10800, public
Connection:Keep-Alive
Content-Disposition:inline; filename="pie_0_normal.png"
Content-Length:2129
Content-Transfer-Encoding:binary
Content-Type:image/png
Date:Wed, 07 Aug 2013 10:29:20 GMT
Expires:Fri, 09 Aug 13 10:29:20 +0000
Keep-Alive:timeout=5, max=93
Last-Modified:Wed, 07 Aug 13 10:14:42 +0000
Pragma:public
Server:Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
Set-Cookie:laravel_session=767487mhf6j2btv3k01vu56174; expires=Wed, 07-Aug-2013 12:29:20 GMT; path=/; httponly
X-Powered-By:PHP/5.4.7

Mein Problem ist, dass meine browser (chrome, nicht getestet, in anderen immer noch weigert, greifen einfach zu der lokal zwischengespeicherten version und stattdessen trifft Sie den server erneut.

Verbrachte ich etwa eine halbe Stunde mit der Suche nach anderen Fragen zu diesem Thema und alle haben mir zu Antworten, die ich integriert habe in dem obigen code. Also, während ich weiß, dass es ähnliche Fragen, dieser ist einzigartig für die oben genannten Quell-code.

Meine Frage ist, was mache ich falsch, dass die Datei nicht vom browser zwischengespeichert?

InformationsquelleAutor carbontwelve | 2013-08-07
Schreibe einen Kommentar