Сбор ресурсов CSS / JS в Spring Controller - PullRequest
1 голос
/ 03 февраля 2012

Я хотел бы собрать все ресурсы css / js в контроллере.

Это приведет к одному HTTP-запросу для каждого ресурса.

Пример:

package my.package;

// [...imports...]

@Controller
@RequestMapping( "/res" )
public class ResourcesController
{
  @RequestMapping( value = "/style.css", headers = "content-type=text/css" )
  // [...] collect all css files from /WEB-INF/css/**

  @RequestMapping( value = "/scripts.js", headers = "content-type=text/javascript" )
  // [...] collect all js files from /WEB-INF/js/**
}

У меня уже есть DispatcherServlet, который использует Apache Tiles, поэтому я думаю, мне нужно создать новый сервлет?!

<servlet>
  <servlet-name>resources</servlet-name>
  <servlet-class>?org.springframework.web.servlet.ResourceServlet?</servlet-class>
  <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>resources</servlet-name>
  <url-pattern>/res/*.css</url-pattern>
  <url-pattern>/res/*.js</url-pattern>
</servlet-mapping>

Является ли класс org.springframework.web.servlet.ResourceServlet правильным?

Что я должен поместить в мой resources-servlet.xml? Это

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">

  <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" />

  <context:component-scan base-package="my.package" />

</beans>

А как должны выглядеть мои методы отображения в контроллере? Любой пример кода был бы очень полезен. Ничего не могу найти в интернете ...

1 Ответ

1 голос
/ 03 февраля 2012

У меня уже есть DispatcherServlet, который использует Apache Tiles, поэтому я думаю, мне нужно создать новый сервлет?!

Нет - у вас должен быть только DispatcherServlet. - Каждый Spring Controller обрабатывается этим сервлетом.


Но в целом то, что вы делаете, выглядит странно.

например

   <mvc:resources location="/, classpath:/META-INF/web-resources/"
    mapping="/resources/**" />
  • Но, может, вы попробуете что-нибудь более сложное, например Jawr ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...