Statische Dateien für Springboot + Thymeleaf-Ressourcen können nicht abgerufen werden
Vorwort
Anforderungen: Das Backend generiert eine PDF-Funktion gemäß der Vertragsvorlage und das Frontend ruft die Schnittstelle auf, um die PDF-Datei direkt anzuzeigen.
Ich bin ein Back-End-Neuling und habe seit n Jahren keinen Back-End-Code mehr geschrieben. Ich habe zuvor Thymeleaf-Entwicklungserfahrung genutzt, daher habe ich Thymeleaf für diese Anforderungsvorlage verwendet.
1. Probleme
In der Thymeleaf-Vorlage können die statischen Bilder im Ressourcenverzeichnis nicht normal angezeigt werden, die Online-Adressbilder jedoch normal.
Die Vorschauen unten zeigen alle Kreuze
2. Finden Sie eine Lösung
1. Ändern Sie die Konfigurationsdatei applicationtion.yml
Code wie folgt anzeigen:
spring.mvc.static-path-pattern: /static/**
2. Ändern Sie die Konfigurationsdatei pom.xml
Der Code lautet wie folgt (Beispiel):
<!-- 访问静态资源-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Nachdem die obige Konfiguration geändert wurde, ist der direkte Zugriff auf die Datei kein Problem.
Postman greift direkt auf http://192.168.11.183:8088/static/test168.png zu und das Bild ist auch ok;
Es gibt jedoch immer noch keine Bilder im PDF der Zugangsschnittstelle. . . . . .
Drei, lösen
Du Niang scharrte und schleppte fast einen Nachmittag lang und konnte dieses Problem immer noch nicht lösen, aber sie hatte immer das Gefühl, nah an der Tür zu sein.
Als ich endlich Feierabend machen wollte, kam mir plötzlich Base64 in den Sinn. Ich habe das Bild in Base64 konvertiert und direkt darauf zugegriffen. Es war eine perfekte Lösung! !
Zusammenfassen
Derzeit werden die Anforderungen des gemeinsamen Debuggens von Front-End und Back-End zum Hochladen von Dateien (Bildern) und Herunterladen von Dateien (Bildern) in der Regel durch die Verwendung von Base64 gelöst. Außerdem habe ich zu wenig Back-End-Erfahrung. Derzeit kann ich denken der einfachsten Lösung.
Wenn es eine bessere Lösung gibt, hinterlassen Sie bitte eine Nachricht!