#spring #spring-mvc #requirejs
#весна #весна-mvc #требуется
Вопрос:
У меня есть простой проект Spring MVC, который использует require.js, knockout.js и другие библиотеки js, как показано на следующем рисунке:
В main.js грузы root.js со следующим кодом:
...lt;omitted other libs heregt;... /** * Load the application's entry point file */ require(['./root']);
На моей странице jsp я могу получить доступ к файлу js, используя следующий код
lt;spring:url value="resources/js/libs/require/require.js" var="requireJs" /gt; lt;spring:url value="resources/js/main.js" var="mainJs" /gt; lt;script type='text/javascript' src="${requireJs}"gt;lt;/scriptgt; lt;script type='text/javascript' src="${mainJs}"gt;lt;/scriptgt;
Но main.js не может получить доступ к корневому js. Я получаю 404 за root.js в журналах сервера.
16:30:38.358 [http-nio-8080-exec-5] WARN org.springframework.web.servlet.PageNotFound - No mapping for GET /SpringMVC_Ojet/js/root.js 16:30:38.358 [http-nio-8080-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 404 NOT_FOUND
Даже если я жестко закодирую root.js путь к файлу в jsp, в библиотеках есть несколько файлов js. Итак, как лучше всего получить доступ к связанным файлам js, управляемым require js с помощью Spring MVC. Содержание моего application-servlet.xml заключается в следующем:
lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"gt; lt;property name="prefix" value="/WEB-INF/views/" /gt; lt;property name="suffix" value=".jsp" /gt; lt;/beangt; lt;!--Provide support for conversion, formatting and validation --gt; lt;mvc:annotation-driven /gt; lt;mvc:resources mapping="/resources/**" location="/resources/" /gt; lt;mvc:annotation-driven /gt;