Где разместить изображения /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 и т.д.
Ответы
Ответ 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.
Причины объясняются очень хорошо в сообщениях ниже: