[Java] Das Problem, dass hochgeladene Bilder aufgrund des Einflusses des Caches nicht aktualisiert werden

Überblick

Es ist in Ordnung, das Bild mit der von mir erstellten Web-App hochzuladen, aber ich habe das Problem, dass das hochgeladene Bild nicht auf dem Bildschirm aktualisiert wird. Deshalb schreibe ich es selbst auf. Es scheint, dass die Ursache darin besteht, dass der Cache fehlerhaft ist und das Image vor dem Update so gelesen wird, wie es ist.

Lösungen

Aus der Schlussfolgerung heraus konnte ich es lösen, indem ich? (Ein Wert) zu "<img src = ~" des auf der JSP-Seite angezeigten Bildes hinzufügte und den Browser es als ein anderes Bild erkennen ließ. ..

test.jsp


//Vorher ändern
<img src="static/img/test.jpg " alt="test.jpg ">
//Nach der veränderung
<img src="static/img/test.jpg?(Beliebiger dynamischer Parameter)" alt="test.jpg ">

Wenn die URL des Bildes genau gleich ist und nichts geändert wird, beurteilt der Browser ** "Cache verwenden" **, sodass das Update anscheinend nicht wiedergegeben wurde.

Weisen Sie mit lastModified Parameter zu

Da es sich um einen willkürlichen eindeutigen Parameter handelt, ist alles in Ordnung, aber da es eine große Sache ist, werde ich versuchen, den Wert automatisch zu erhalten und ihn anzugeben. Holen Sie sich das hochgeladene Datum und die Uhrzeit mit lastModified und geben Sie es an.

Controller.java


//Wählen Sie die Zieldatei aus
File file = new File("static/img/test.jpg ");
//Holen Sie sich das Datum und die Uhrzeit der letzten Änderung der Datei und stellen Sie sie in jsp zur Verfügung
model.addAttribute("file", file.lastModified());

test.jsp


<img src="/static/img/test.jpg?${file}" alt="test.jpg ">

Wenn Sie nun die Datei aktualisieren, wird die aktualisierte geladen.

Referenz

Recommended Posts

[Java] Das Problem, dass hochgeladene Bilder aufgrund des Einflusses des Caches nicht aktualisiert werden
[Java] [Java EE] [Glassfish] (Fortsetzung) Stil, der den Cache von Glassfish bezweifelt
So lösen Sie das Problem, dass Aptana Studio nicht gestartet wird
So beheben Sie das Problem, dass beim Stoppen der Webanwendung kein Protokollierungsprotokoll ausgegeben wird
Das Problem, dass der Inhalt von Parametern vollständig in der Ansicht [Rails] angezeigt wird
Das Problem des Einfrierens aufgrund eines plötzlichen "EXT4-fs-Fehlers" unter Ubuntu 20.04 wurde behoben
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
Ausgabe des Buches "Einführung in Java"
10 Sperrfeuer mit ● oder ■, die wahrscheinlich im Training auftreten (Java)
[Von Zeit zu Zeit aktualisiert] Links, die verschuldet sind
Das Datum und die Uhrzeit von java8 wurden aktualisiert
[Java] Was tun, wenn sich der in der Datenbank gespeicherte Inhalt und der Name der Aufzählung in der Aufzählung unterscheiden, die die Definition der Datenbank widerspiegelt?
[Java] Versuchen Sie, das Fizz Buzz-Problem zu lösen
Java Willkommen im Sumpf der zweidimensionalen Arrays
[Einführung in Java] Liste der Dinge, die am 14. Tag der Programmierung gefangen wurden
[Java] Umgang mit der Situation, in der das Programm, das in den Output Stream of Process schreibt, nicht endet, selbst wenn waitFor
Funktionen, die derzeit wahrscheinlich in Java 10 eingegeben werden
Fälle, die aufgrund eines ganzzahligen Überlaufs häufig vergessen werden
Wie schreibe ich Scala aus der Perspektive von Java
Initialisierung von for Versuchen Sie, das Java-Problem in TypeScript 5-4 zu ändern
[Java] So erhalten Sie den Maximalwert von HashMap
Ändern Sie die Speicherqualität von JPEG-Bildern in Java
Eine kurze Zusammenfassung der Java 8-Datums- / Uhrzeit-APIs, die wahrscheinlich häufig verwendet werden
Notiz, die zum Anmeldebildschirm übergeht, wenn Sie nicht mit devise angemeldet sind