Spring mvc: тег ресурсов и ошибка 404

Я пытаюсь использовать тег

это моя структура проекта

я хочу получить доступ к javascript в папке js и css в папке стилей однако, всякий раз, когда я добавляю это в свой диспетчер-servlet.xml

Я получил ошибку 404 при запуске проекта (проект будет перенаправлен на login.htm, который является страницей login.jsp)

это мой код dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
 <context:component-scan base-package="com.swcommodities.wsmill.controller">
 <mvc:resources mapping="/resources/**" location="/">
 <bean id="viewResolver" p:prefix="/WEB-INF/" p:suffix=".jsp">
 <tx:annotation-driven>
 .
 .
 .
</tx:annotation-driven></bean></mvc:resources></context:component-scan></beans>

это web.xml

<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>/WEB-INF/applicationContext.xml</param-value>
 </context-param>
 <listener>
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <servlet>
 <servlet-name>dispatcher</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <load-on-startup>2</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>dispatcher</servlet-name>
 <url-pattern>/</url-pattern>
 </servlet-mapping>
 <session-config>
 <session-timeout>
 30
 </session-timeout>
 </session-config>
 <welcome-file-list>
 <welcome-file>redirect.jsp</welcome-file>
 </welcome-file-list>

Я не знаю, почему я удаляю строку <mvc:resources...< code="">, проект работает правильно, но при добавлении этого в проект я сразу получаю ошибку 404. Я думаю, что это конфликтует с текущим проектом.</mvc:resources...<>

3 ответа

Ответ здесь:

Использование < mvc: resources.../> в spring 3 все остальные виды перестают работать

Цитата автора: " требует (или явно объявленных сопоставлений обработчиков и т.д.).

Это помогло мне.


Вам нужно установить полный путь в атрибуте location, например:

Одна отдельная заметка, я бы рекомендовал вам объединить все ресурсы в одну папку, например "активы", потому что в вашей текущей настройке злоумышленник может получить доступ к чему-либо, находящемуся под WEB-INF/, что явно не то, что вы хотите.

Сообщите мне, если это работает.

Айман


так как файлы ресурсов находятся в fold js и стилях, вам нужно изменить отображение на:

и загрузите их в jsp:

licensed under cc by-sa 3.0 with attribution.