Wenn Sie diese Ressourcen über HTTP zugreifen möchten, sie müssen woanders sein - sie können nicht in WEB-INF sein. Diese Frage würde ein Duplikat sein, wie es anderswo mehrfach beantwortet wurde (schauen Sie einfach die verwandten Fragen Links für diese Frage). Eine Java-Webanwendung wird nie machen alle Ressourcen unter WEB-INF über HTTP zugänglich.
jedoch, wie Ihre Frage nach der „empfohlenen“ Standard-Dateistruktur ist, lassen Sie mich Ihnen sagen, wo die Dokumentation, die Sie verknüpfen, ist irreführend: Alle Ressourcen in src/main/resources wird oben auf dem Classpath beenden, zum Beispiel in WEB-INF/Klassen. Es wird nicht in dem Verzeichnis enden, in dem die Webapplikation es für die Welt verfügbar macht. Die Dokumentation verwendet jedoch ein Bild, das darauf hinweist, dass das Bild innerhalb der Webanwendung verwendet werden kann. Es kann nicht. Sie können auf den Classloader zugreifen, in Ihrem Fall zum Beispiel als: SomeClassFromYourWebapp.class.getResourceAsStream()
. Dies geschieht typischerweise mit .properties
Dateien, .xml
oder ähnlichen, die zur Laufzeit als mit Bildern verarbeitet werden. Wirklich irreführende Dokumentation würde ich sagen (aber es ist korrekt, nur irreführend)
Technisch würde dies Ihre Frage nach "Wie greife ich auf die Ressource von einer JSP?" Beantworten, weil Sie diesen Code in einer JSP haben können. Ich glaube, dass Ihre Frage eher darin besteht, die Ressourcen über HTTP anzusprechen.
Und die Antwort auf dass ist: Verschieben Sie die Ressourcen, die Sie über HTTP src/main/webapp
verfügbar benötigen und halten sie aus WEB-INF
. Ansonsten sind sie nur auf dem Klassenpfad.
Ich lege sie nicht in die WEB-INF, tatsächlich, wenn Sie den Link, den ich auf Maven War Plugin Nutzung freigegeben habe packt die Bilder, CSS-Dateien und etc. in das WEB-INF/Klassen-Verzeichnis. Es ist die empfohlene Struktur. –