Standard statische Ressourcenversorgung
Springboot verfügt über mehrere statische Ressourcenverzeichnisse, die ebenfalls konfiguriert werden können. Die Standardkonfiguration /** Karten an /static (oder /public, /ressourcen, /meta-inf /ressourcen) und die benutzerdefinierte Konfigurationsmethode lautet wie folgt:
Spring.Mvc.static-Path-Pattern =/** # Pfadmuster, das für statische Ressourcen verwendet wird.
Wenn das Front-End auf die statischen Standardressourcen zugreifen muss, achten Sie bitte auf die folgende Verzeichnisstruktur:
└└Resources │ application.yml │ ├ ├ ├ ├ ├ ├ │ ├─css │ │ index.css │ │ └─js │ index.js │ └─Templates index.html
Wie kann man die obigen statischen Ressourcen in index.html beziehen?
Die folgende Schreibmethode:
<link rel = "stylesheet" type = "text/css" href = "/css/index.css" rel = "externe nofollow"> <script type = "text/javascript" src = "/js/index.js"> </script>
HINWEIS: Die Standardkonfiguration /** Karten an /static (oder /public, /ressourcen, /meta-inf /ressourcen)
Bei Anfrage /css/index.css findet sich Spring MVC im Verzeichnis /static /Verzeichnis.
Wenn sie als /static/css/index.css konfiguriert werden, gibt es unter den mehreren oben konfigurierten Verzeichnissen kein Verzeichnis, sodass die Ressourcendatei nicht gefunden wird!
Bringen Sie beim Schreiben statischer Ressourcenstandorte die zugeordneten Verzeichnisnamen (wie/static/,/public/,/ressourcen/,/meta-inf/ressourcen/) nicht mit!
Benutzerdefinierte statische Ressourcen
Die Online -Informationen besagen, dass die Spezifikation in der Konfigurationsdatei definiert werden kann. Ich habe diese Methode nicht verwendet. Ich habe es verwendet, indem ich erweiterte Konfiguration implementiert habe.
PS: Erklären Sie, dass in der Springboot 1.x -Version einige Konfigurationen im Zusammenhang mit Spring MVC durch Erben von WebMVCAutoconfiguration erweitert werden. In der 2.x -Version ist die Schnittstelle WebMVCConFigurer jedoch direkt implementiert, um die MVC -bezogenen Funktionen zu erweitern. Konfigurieren Sie die Opport -H2 -H2 -H2 -H2 -H2 -H2 -H2 -H2 -H2 -H2 -H2 -Rendite. Pfad in diesem Artikel, der die Standardmethoden wie im Inneren abdeckt.
Laden Sie einfach den Code hoch:
@ConfigurationPublic Class MyWebAppConFigurer implementiert webmvcconFigur {// event.share.image.dir =/data/share/image/@Value ("$ {event.share.image.dir}") private String outputdir; @Override public void addResourceHandlers (ResourceHandlerregistry Registry) {Registry.AddresourceHandler ("/Share/Image/**"). AddResourcelocations ("Datei:"+outputDir); }}HINWEIS: Der Hintergrund des obigen Codes ist ein Bild, das dynamisch aus einem anderen Ort aufgenommen wurde. Es darf nicht in das Paket von Sringboot Jar platziert werden. Daher können Sie über die obige Konfiguration direkt auf das Bild in /data/share/image/a.jpg über http: //host/share/image/a.jpg zugreifen. Wenn die statische Ressourcendatei nicht dynamisch ist, muss sie auch im Ressourcenverzeichnis enthalten sind, nur wie folgt schreiben:
Registry.AdDresourceHandler ("/shary/image/**"). addresourcelocations ("classPath:"+outputdir); // Datei in ClassPath ändernZugriff auf statische Ressourcen über Springboot Tool Class
Sehr einfach, der Code ist wie folgt:
private statische endgültige Zeichenfolge Hintergrund_image = "Share/Hintergrund.jpg"; File = new classSpathResource (Hintergrund_image) .GetFile (); InputStream ist = new classPathresource (Hintergrund_image) .GetInputStream ();
Es stellt sich heraus, dass es eine andere Möglichkeit gibt, es zu schreiben:
private statische endgültige Zeichenfolge Hintergrund_Image = "ClassPath: Share/Hintergrund.jpg"; Datei File = Resourceutils.getFile (Hintergrund_Image);
Aber in Version 2.x kann das Folgende nur Ausnahme erscheint
java.io.filenotfoundException: Klasse Pfadressource [Share/Hintergrund.jpg] kann nicht auf den absoluten Dateipfad gelöst werden, da es sich nicht im Dateisystem befindet: jar: Datei: /home/ubuntu/wxcs/calendar-api-1.0.jar!/boot-inf/classes/share/background
Ich würde den ersten Weg empfehlen, es zu schreiben.