Frage

Meine MAVEN-Spring-Projektverzeichnisstruktur ist unten gezeigt. Ich verwende die Annotations-basierte Konfiguration von Spring-4. Ich konfiguriere die folgenden Ressourcen wie unten. Ich habe viele Möglichkeiten versucht, die in vielen Stackoverflow-Fragen und anderen Websites vorgeschlagen werden.

Spring 4 Laden statische Ressourcen

http://imwill.com/ Feder-MVC-4-add-static-ressourcen-by-Annotation / #. U5gzlxks9i4

Die JSP-Dateien konnten jedoch die Ressourcen nicht laden, alle statischen Inhaltsanfragen gibt 404 Fehler zurück. Ich habe diese Dinge in JSP ausprobiert,

generasacodicetagpre.

edit: Ich verwende Servlet 2.5, weil ich ab sofort mein Projekt nicht von JBoss 5 auf höhere Versionen aktualisieren kann. JBoss5 unterstützt keine Servlets 3 und tue diese Angelegenheit?

generasacodicetagpre.

Projektstruktur

War es hilfreich?

Lösung

das funktioniert,

generasacodicetagpre.

und in den JSP-Dateien, die ich auf die statischen Ressourcen wie

verwiesen habe generasacodicetagpre.

Andere Tipps

Ich denke, es ist ein bisschen spät, aber ich hatte gerade vor kurzem mit einem ähnlichen Problem. Nach mehreren Tagen Wrestling stellte sich schließlich heraus, dass mein Dispatcherservlet nicht so konfiguriert war, um die Anforderung zu handhaben, daher wurden die Ressourcen nie aufgesaugt. Ich hoffe, dass andere diese Antwort nützlich finden werden.

Wenn das Dispatcher-Servlet, damit Sie Ihre Config-Klasse oben geben, nicht an das Root ("/"), sondern auf ein oberes Wort (z. B. "/ Daten /") zugeordnet, dann könnten Sie sich mit demselben Problem stellen. < / p>

Angenommen, ich habe ein Mapping als "/ Data / *" für mein Dispatcher-Servlet. Also sehen meine Anrufe aus wie

generasacodicetagpre.

und ich dachte, wenn ich eine Ressourcenzuordnung habe, z. "/ content / ** / *", dann habe ich Zugriff darauf, wie

generasacodicetagpre.

aber es ist nicht wahr, ich sollte verwenden

generasacodicetagpre.

stattdessen. Dies war für mich nicht klar, und da die meisten Muster den Wurzel "/" für das Dispatcher-Servlet-Mapping verwenden, war es daher kein Problem. Nachdem ich später in Betracht gezogen habe, hätte ich es früher kennen, / sagen, dass das Dispatcherservlet den Anruf auswerten sollte, und der Inhalt / übermittelt mit dem Servlet, dass ein Ressourcenhandler der "Controller" ist.

Aber ich möchte es in meinem Frontend (Angularjs) sehr klar machen, ob ich nach Daten (über die Restdienste) oder einen Inhalt (Rückgabe von Kleinen Texten) suche. Die Daten stammen aus einer Datenbank, der Inhalt stammt jedoch aus Dateien (z. B. pdf docs). Daher habe ich beschlossen, dem Dispatcher-Servlet zwei Zuordnungen hinzuzufügen:

generasacodicetagpre.

Die MidtierAppconfig-Klasse ist leer, aber der MidtierDispatcherconfig definiert die statischen Ressourcen:

generasacodicetagpre.

Wenn ich jetzt Zugriff auf meine @ Controllers haben möchte, verwende ich das / Daten / Präfix, und wenn ich auf meine Ressourcen auf Zugriff auf meine Ressourcen zugreifen möchte, benutze ich den / Inhalt / Präfix. Einschränkungen ist, dass, wenn ich eine @REQUESTMAPPE-Klasse ("/ app") -Methode aufweist, die ein @requestMapping-Verfahren (" und ohne tatsächlich zu versuchen, könnte ich vermuten, dass ich auch auf die Ressourcen as / App / Courses / WhateverPath zugreifen kann), da der Dispatcher sowohl "Daten /" und "Inhalt /" aufhört, und analysiert nur den Rest der URL ("App / ungefähr "In beiden Fällen), um den richtigen @ -Controller zu finden.

Unabhängig, die aktuelle Lösung, die ich erreicht habe, ist für mich zufriedenstellend, also werde ich es so lassen, wie es ist.

das funktionierte für mich.Dateien, die beim generakodicetagcode verfügbar sind.Achten Sie auf, dass Sie keine generationspflichtige Annotation fehlen ...

generasacodicetagpre.

Es ist möglich, die URI der Webseite zu vereinfachen, um den Dateinamen einer Ressource zu enthalten:
<link href="bootstrap.css" rel="stylesheet" media="screen">
Eine geeignete Konfiguration könnte wie folgt sein:

generasacodicetagpre.

feder Concatate '/ Ressourcen / CSS /' String mit dem von URI extrahierten Dateinamen, um den tatsächlichen Speicherort einer Ressource zu identifizieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top