У меня есть угловое приложение, которое использует ui-router и обслуживается java-приложением SpringMvc (4.2.4). Я решил сопоставить любые запросы с одним контроллером/методом, который загружает одну страницу JSP моего проекта.
Но когда я пытаюсь добавить сопоставления статических ресурсов, чтобы загрузить файлы js и css, эти статические ресурсы игнорируются... Каждый запрос внутри пути [mayapp]/resources/* приводит к моей единственной странице jsp.
Вот мой конфиг:
web.xml
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
servlet.xml
<context:component-scan base-package="com.adveasys.omrh.front.web" />
<mvc:annotation-driven></mvc:annotation-driven>
<mvc:resources mapping="/resources/**" location="/resources/">
<mvc:resource-chain resource-cache="false" auto-registration="false">
<mvc:resolvers>
<bean class="org.springframework.web.servlet.resource.GzipResourceResolver"/>
<bean class="org.springframework.web.servlet.resource.PathResourceResolver"/>
</mvc:resolvers>
</mvc:resource-chain>
</mvc:resources>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
MainController.java
@RequestMapping("/**")
public ModelAndView mainPage(HttpServletRequest request) throws JsonProcessingException {
Прежде чем возникла эта проблема, я использовал сервлет по умолчанию в web.xml для каждого /resources/*, но я создаю версию .gz моих скриптов/css с maven, и я хочу, чтобы такая конфигурация могла использовать GzipResourceResolver .
Вещи, которые я уже пробовал, но не работали
- объявить 2 различных DispatcherServlet в web.xml, один только для JSP, другой только для ресурсов. (Я разделил конфигурацию mvc на 2 разных файла для каждого сервлета)
- @RequestMapping("/") в контроллере, пользователь должен войти на сайт по корневому адресу, что недопустимо.
- Я попытался установить порядок и как свойство для InternalResourceViewResolver
Заранее спасибо.