Wie ändere ich die Art und Weise, wie Spring Boot statische Dateien bereitstellt?

Nachdem ich JHipster kürzlich für einige neue Projekte verwendet habe (sehr empfehlenswert! Hervorragende Arbeit!), Versuche ich, einige der Konzepte in eine ältere Webanwendung zurückzuspeichern und im Wesentlichen auf Spring Boot und Angular zu migrieren.

In Spring Boot befindet sich der Standardspeicherort für statische Webressourcen (HTML, JS, CSS usw.) in einem Verzeichnis mit dem Namenpublic, static oderresources befindet sich an der Wurzel des Klassenpfads. Jedes dieser Verzeichnisse wird vom Spring Boot abgerufen, und auf die darin enthaltenen Dateien kann über HTTP zugegriffen werden.

In JHipster befinden sich die Webdateien imsrc/main/webapp Verzeichnis. Welches Verzeichnis wird standardmäßig in einem klassischen Maven WAR-Projekt verwendet?

as gefällt mir besser, weil:

it trennt das statische Webmaterial klarer von den Klassenpfadressourcen, die vom Java-Code verwendet werden.die Verschachtelung ist weniger tief (wir haben bereits genügend Ebenen von Verzeichnissen, die mit Maven verschachtelt sind, wie es ist!).

Aber wenn ich gerade ein Webapp-Verzeichnis in meinem Projekt erstelle und meine HTML-Dateien darin ablege, sind sie nicht über HTTP verfügbar, und der Erstellungsprozess erstellt dasWEB-INF Verzeichnisstruktur drin. Ich will das nicht, und in JHipster ist das nicht der Fall.

Wie kann ich Spring Boot so konfigurieren, dass es sich wie in JHipster verhält?

Für diejenigen, die nicht mit JHipster vertraut sind:Wie kann ich Spring Boot anweisen, statische Dateien aus einem anderen Ordner bereitzustellen, der nicht im Klassenpfad enthalten ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage