Ich entwickle eine Webapp mit Spring 4.3.4 + Spring MVC + Thymeleaf 3.0.2. Übrigens habe ich Spring Security noch nicht integriert, daher gibt es keine Sicherheitsrichtlinien. Das Problem ist einfach: Die statischen Ressourcen sind nicht im Browser geladen (Fehler 404).Spring MVC 4 + Thymeleaf: statische Ressourcen 404 Fehler
Das ist mein Projekt Ordnerstruktur, dass ein Standard-Maven-Struktur ist (ich habe setzen statische Ressourcen auf /src/main/resources/static, aber ich habe auch versucht, /src/main/webapp/ oder /src/main/webapp/WEB-INF/):
und dies ist zum Beispiel, wie ich CSS Link auf meinen Seiten (glauben Sie mir, die Datei /src/main/resources/static/assets/css/style.css wirklich existiert):
<link th:href="@{/assets/css/style.css}" type="text/css" />
Soweit ich weiß, ich sollte keine ResourceHandler müssen Inhalte zu handhaben auf /src/main/resourcess/statisch/assets/, die bereits bei /assets/ verfügbar sein sollte, aber es funktioniert nicht, so in der Konfiguration meiner Feder java ich auch auch einige Versuche wie gemacht haben:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("classpath:/static/assets/**").addResourceLocations("/assets/");
registry.addResourceHandler("classpath:/static/pages/**").addResourceLocations("/pages/");
}
In jedem Fall sind CSS- und JS-Dateien nicht zugänglich.
Mein Dispatcher Servlet an die Wurzel zugeordnet ist /:
<servlet-mapping>
<servlet-name>myappDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Wenn ich HTML auf Browser überprüfen kann ich sehen, dass der oben genannte Tag wird:
<link href="/myapp/assets/css/style.css" rel="stylesheet" type="text/css">
, die ziemlich richtig zu mir aussieht, Recht?
Also, warum erhalte ich einen 404 Fehler, wenn ich versuche, auf das CSS zuzugreifen? Vergesse ich etwas Wichtiges?
Danke,
Luca
Ich habe bereits mit und ohne Ressourcen-Handler-Zuordnungen versucht, und das Ergebnis ist das gleiche. Außerdem ist Ihr Tag genau wie meines, mit Ausnahme des Attributs _href_, dass es von der Thymeleaf-Engine während des Renderns der Ansicht ignoriert wird (dies kann nur beeinflusst werden, wenn Sie die .html-Vorlage statisch öffnen). – Dolfiz