2012-02-03 5 views
1

컨트롤러에있는 모든 CSS/js 리소스를 수집하고 싶습니다.스프링 컨트롤러에서 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이있다, 그래서 나는 새로운 서블릿을 만들 필요가 생각?!

<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이 올바른가요?

그러면 resource-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> 

내 매핑 방법이 컨트롤러에서 어떻게 표시되어야합니까? 예제 코드는 매우 유용합니다. 인터넷에서 아무 것도 찾을 수 없습니다 ...

+0

왜 이렇게하고 싶은지 확실하지 않습니다. 그리고 당신이 그것에 대해 어떤 자원도 찾을 수 없다는 사실을 감안할 때, 소수의 사람들이 그렇게 함을 시사합니다. –

+0

나는 스프링 부분에 대해 전혀 모른다.하지만 최소한 URL 패턴이 잘못되었다고 말할 수있다. '*'는 마지막 문자의 첫 번째 문자 일 수 있습니다. 예 : '/ res/*'또는'* .js'. – BalusC

+0

http://developer.yahoo.com/performance/rules.html – dtrunk

답변

1

이미 Apache Tiles를 사용하는 DispatcherServlet이 있으므로 새 서블릿을 만들어야 할 필요가 있으십니까?!

아니요 - DispatcherServlet 만 있어야합니다. - 모든 Spring Controller는이 서블릿에 의해 처리됩니다.


그러나 일반적으로 당신이하는 일은 이상하게 보입니다.

  • 봄은 이미 예를

    <mvc:resources location="/, classpath:/META-INF/web-resources/" 
        mapping="/resources/**" /> 
    

    를 참조 ResourceHttpRequestHandler 정적 능숙에 액세스 할 수 있도록하는 "도구"가하지만 어쩌면 당신은 같은 Jawr을 더 복잡한 것을 시도?

+0

Jawr이 내가 찾고있는 곳입니다. 감사합니다. – dtrunk

관련 문제