Подтвердить что ты не робот

Где разместить изображения /CSS в приложении spring -mvc?

Я использовал Netbeans для создания приложения Spring MVC 3.0. У меня есть простой контроллер и JSP-представление. Представление JSP отображается правильно, за исключением изображения, которое не отображается. Моя структура каталогов выглядит так: alt text

На моей странице Home.jsp изображение, которое не отображается, ссылается так:

<img src="Images/face.png" />

Я проверил, что face.png находится в каталоге Images. Так почему он не отображается в браузере? В Spring MVC, где я должен размещать файлы, на которые ссылаются представления JSP, например изображения, CSS, JS и т.д.

4b9b3361

Ответ 1

Измените файл web.xml:

<servlet>
    <servlet-name>spring-servlet</servlet-name>
    <servlet-class>com.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>spring-servlet</servlet-name>
    <url-pattern>/<url-pattern>
</servlet-mapping>

и после него добавить конфигурацию ниже:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
</servlet-mapping>

Если у вас есть лучшее решение, поделитесь со мной.

Ответ 2

Я смог найти полезный ответ здесь: Как обрабатывать статический контент в Spring MVC?

Проблема заключалась в том, что мой сервлет Spring mvc dispatcher перехватывал вызовы статических ресурсов. Поэтому я применил сервлет Tomcat по умолчанию для обработки статических ресурсов.

Ответ 3

что-либо в папке Web-Inf будет помечено как закрытое и не может быть доступно браузером. Предположим, что вы перемещаете папку изображений вне Web-Inf и под webapp.

Ответ 4

Для установки изображения в файле jsp в Spring инфраструктуре MVC:

Вы можете просто установить свое изображение, выполнив следующие шаги:

Шаг 1. Поместите папку изображений в ресурсы

Шаг 2. Запишите путь изображения, например:       src= "$ {} pageContext.request.contextPath/resources/images/logo.jpg"

Ответ 5

Я считаю, что он может ссылаться только на images/css в папке WEB-INF. Перемещение папки Images в WEB-INF должно устранить вашу проблему.

Ответ 6

Я думаю, что вы можете поместить все статические данные, такие как изображение, css, javascripts и т.д., из WEB-INF, а затем вызвать его обычным способом:)

Ответ 7

Немного устарел, но позвольте мне добавить мой бит здесь. Обычно рекомендуется скрыть файлы .css/.js из прямого публичного доступа, помещая их в папку main/java/webapp вместо WEB-INF.

Причины объясняются очень хорошо в сообщениях ниже: