mvc: resources, wie der Klassenpfad verwendet wird

8

Ich habe hoch und niedrig gesucht, um dieses Problem zu lösen, aber ich kann keine Lösung finden. Das Problem ist wie folgt: Ich habe eine Spring-MVC Webapp auf einem Tomcat 7 Server gebaut - 7.0.12, um genau zu sein - und ich habe Probleme, das <mvc:resources> Tag richtig zu machen. Wie Sie unten sehen werden, funktioniert <mvc:resources> für den alten Ressourcenordner, aber ich bevorzuge den Ressourcenordner im Verzeichnis /WEB-INF/web/ .

MediorkoorVOICES-Web-servlet.xml:

%Vor%

Ordnerstruktur:

%Vor%

Wenn ich jetzt auf den alten Ressourcenordner zugreifen wollte, würde der folgende Code funktionieren.

%Vor%

Aber was ich am liebsten hätte, wäre etwas wie das:

%Vor%

Kann mir jemand erklären, wie ich das mache? Ich bin ziemlich neu in Spring-MVC.

EDIT1: Zusätzliche Daten: Ich benutze Netbeans 7.1.2 und Spring-MVC Version 3.1.0 kombiniert mit Maven.

Unten ist die Pom.xml

%Vor%

EDIT2: Ich habe die komplette MediorkoroorVOICES-Web-servlet.xml und die web.xml

hinzugefügt web.xml:

%Vor%

EDIT3: Nach einigen weiteren Tests habe ich festgestellt, dass das <mvc:resources> -Tag überhaupt nicht funktioniert. (Sehen Sie sich die aktualisierte Ordnerstruktur an) Wenn ich zum Beispiel folgendes mache:

%Vor%

Es gibt mir auch einen 404, während es in der Tat mit der Datei /resources/web/css/main.css verlinken sollte. Alles was ich jetzt denken kann ist, dass es eine Fehlkonfiguration gibt.

    
Jaap Oudejans 20.06.2012, 13:13
quelle

3 Antworten

8

Nach vielen Fehlersuchen und "Versuchen" habe ich versucht, das * .css- und * .png-Mapping zum web.xml-Servlet hinzuzufügen. Anscheinend wurden die Ressourcendateien nicht dem Servlet zugeordnet und konnten daher nicht gefunden werden. Fügen Sie diese also für alle Personen mit derselben Zuordnung wie meine zu Ihrem web.xml-Tag servlet-mapping hinzu.

%Vor%     
Jaap Oudejans 22.06.2012, 13:03
quelle
1

Das sollte funktionieren:

%Vor%

Sie beziehen sich auf die Ressourcen, die ein uri von /resources/somestatic.gif verwenden, aber es wird von WEB-INF/resources/somestatic.gif

geliefert     
Biju Kunjummen 21.06.2012 12:56
quelle
0

Was Sie tun, ist völlig falsch. Da sich Ihre Ressourcen im Ordner / WEB-INF / web / resources / befinden, müssen Sie classpath: davor nicht angeben.

So wäre es wie unten

%Vor%

Ich denke, das würde Ihr Problem lösen. Hoffe das hilft dir. Prost.

    
Japan Trivedi 20.06.2012 13:22
quelle