Где разместить изображения / CSS в приложении Spring-MVC? - PullRequest
14 голосов
/ 13 ноября 2010

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

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

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

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

Ответы [ 7 ]

36 голосов
/ 24 апреля 2012

Измените ваш файл 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>

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

3 голосов
/ 08 ноября 2011

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

3 голосов
/ 13 ноября 2010

Мне удалось найти действенный ответ здесь: Как обрабатывать статический контент в Spring MVC?

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

1 голос
/ 27 августа 2013

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

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

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

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

0 голосов
/ 10 марта 2015

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

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

0 голосов
/ 08 октября 2014

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

0 голосов
/ 13 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...