Die Spring Boot-App liefert keinen statischen Inhalt

8

Ich verwende Spring Boot und versuche, meine statischen Ressourcen (CSS, JS, Fonts) verfügbar zu machen, wenn sie bereitgestellt werden. Der Quellcode steht Ihnen zur Verfügung, um Ссылка zu betrachten oder zu klonen.

Im Moment sind meine CSS-, JS- und Font-Dateien für meine bereitgestellte Website nicht sichtbar.

Hier ist meine Projektverzeichnisstruktur:

Hier ist das Wurzelverzeichnis der kompilierten JAR: Ich versichere Ihnen, dass die Dateien in ihren jeweiligen Ordnern vorhanden sind.

Hier ist der Netzwerkfehler, den ich sehe:

Und hier sind meine Quellen, die von chrome tools zur Verfügung gestellt werden. Beachten Sie, dass bar.css hier leer erscheint. Sie können meinen Quellcode ansehen, um zu sehen, dass er nicht leer ist.

Hier ist meine homepage.html

%Vor%

Hier ist mein Web App Initialisierer (FooWebAppInitializer.java)

%Vor%

Hier ist meine Servlet-Konfiguration (ServletConfig.java)

%Vor%

Und für Tritte, My Spring Security Config (WebSecurityConfig.java)

%Vor%     
John Douglas George 20.03.2015, 17:37
quelle

2 Antworten

16

Setzen Sie statische Ressourcen unter dem folgenden Verzeichnis:

%Vor%

Sie können auch public oder resources anstelle von static als Ordnernamen verwenden.

Erklärung : Ihr Build-Tool (Maven oder Gradle) kopiert den gesamten Inhalt von /src/main/resources/ in die Anwendung Klassenpfad und wie in Spring Boot's Dokumente wird der gesamte Inhalt eines Verzeichnisses namens /static (oder /public oder /resources ) im Klassenpfad als statischer Inhalt bereitgestellt.

Dieses Verzeichnis könnte auch funktionieren, aber es wird davon abgeraten:

%Vor%
  

Verwenden Sie nicht das Verzeichnis src / main / webapp, wenn Ihre Anwendung dies ist   verpackt als ein Glas. Obwohl dieses Verzeichnis ein allgemeiner Standard ist, ist es   funktioniert nur mit Kriegsverpackungen und wird stillschweigend ignoriert   Die meisten Build-Tools, wenn Sie ein Jar generieren.

    
Andrea 20.03.2015, 17:45
quelle
1

Es gibt zwei Dinge zu beachten (Spring Boot v1.5.2.RELEASE) - 1) Überprüfen Sie alle Controller-Klassen auf @EnableWebMvc Annotation, entfernen Sie sie, falls vorhanden 2) Überprüfen Sie die Controller-Klassen, für die eine Annotation verwendet wird - @RestController oder @Controller. Mischen Sie das Rest-API- und MVC-Verhalten nicht in einer Klasse. Verwenden Sie für MVC @Controller und für REST API @RestController

Wenn Sie über zwei Dinge hinausgingen, wurde mein Problem gelöst. Jetzt lädt mein Spring Boot statische Ressourcen ohne Probleme. @Controller = & gt; load index.html = & gt; lädt statische Dateien.

%Vor%

index.html

%Vor%     
gjp 01.08.2017 15:36
quelle