2017-08-21 3 views
1

SO, Ich versuche Caching für meine MVC5-Anwendung zu Optimierungszwecken zu konfigurieren. Obwohl ich OutputCache Attribut auf eine Controller-Action-Methode gesetzt habe, kann ich meine Bilder nicht im Cache sehen. Hier ist die Controller-Aktion:Warum werden meine Bilder nicht zwischengespeichert, obwohl ich OUTPUTCACHE konfiguriert habe?

[OutputCache(Duration = 60, Location = OutputCacheLocation.ServerAndClient, NoStore=true, VaryByParam = "resultid")] 
public FileContentResult getPicture(string resultid) 
{ 
    var actionLinks = db.ActionLinks.ToList(); 
    var actionLinkPic = actionLinks.FirstOrDefault(p => p.Id == resultid); 
    if (actionLinks != null) 
    { 
     return File(actionLinkPic.TPicture, actionLinkPic.TPictureMimeType); 
    } 
    else 
    { 
     return null; 
    } 
} 

Hier ist die Netzwerk-Antwort in Firefox:

Das Netzwerk Antwort:

enter image description here

+0

Versuchen Sie, 'NoStore = true' zu ​​löschen –

+0

Das wird diese Bilder dauerhaft speichern, ich will das nicht – Newbie

Antwort

0

Sie haben NoStore=true

Die NoStore Eigenschaft deaktiviert Caching vollständig - es wird häufig verwendet, um das Caching zu deaktivieren für GET-Anfragen (die standardmäßig zwischengespeichert werden).

ändert es zu NoStore=false

Leider gibt es nur sehr wenig Dokumentation für OutputCacheAttribute, so zu einem gewissen Grad werden Sie mit den Optionen experimentieren und sehen, was passiert.

+0

Noch ist es nicht im Cache mit' NoStore = false', was könnte das Problem sein? – Newbie

+0

Und nebenbei muss ich Konfiguration für den Ausgabe-Cache in der Anwendung web.config hinzufügen? – Newbie

+0

Browser können das Caching sowohl im Code als auch im Entwicklerfenster deaktivieren. Bitte teilen Sie Javascript/HTML mit, das die Anfrage an getPicture stellt. – buffjape

Verwandte Themen