복붙노트

[SPRING] Spring MVC 애플리케이션에서 정적 리소스를 제공하는 Tomcat

SPRING

Spring MVC 애플리케이션에서 정적 리소스를 제공하는 Tomcat

내가 봄 MVC 응용 프로그램을 구축하고있는 frontController 서블릿은 "/"모든 요청을 가로 채기에 매핑되어 있는데, 정적 컨텐츠 (.js, .css, .png ...)를 Tomcat에서 제공 할 수 있어야하고 봄이 아닌. 내 앱 구조는

-webapp/
   styles/
   images/
   WEB-INF/
          views/

기본적으로 frontController는 내 앱의 컨텍스트 루트에 매핑되기 때문에 모든 요청을 처리하지만 정적 리소스를 제공하지는 않습니다. 정적 자원에 대한 mvc 구성은 다음과 같습니다.

<mvc:resources mapping="/resources/**" location="/"/>

페이지의 코드는 다음과 같습니다.

<img src="resources/images/logo.png" />

스프링 상호 작용없이 정적 자원을 제공하도록 Tomcat을 구성해야합니다.

어떠한 제안?

해결법

  1. ==============================

    1.tomcats 기본 서블릿 (정적 컨텐츠를 처리)을 다시 매핑 할 수 있습니다 (예 :

    tomcats 기본 서블릿 (정적 컨텐츠를 처리)을 다시 매핑 할 수 있습니다 (예 :

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/images/*</url-pattern>
    </servlet-mapping>
    
  2. ==============================

    2.이 메일 링리스트 스레드를보고 원하는 것이 무엇인지 확인하십시오.

    이 메일 링리스트 스레드를보고 원하는 것이 무엇인지 확인하십시오.

  3. ==============================

    3.또 다른 잠재적 인 해결책 - Spring DispatcherServlet.xml (Spring Docs)에 다음을 추가하기 만하면된다.

    또 다른 잠재적 인 해결책 - Spring DispatcherServlet.xml (Spring Docs)에 다음을 추가하기 만하면된다.

    <mvc:default-servlet-handler/>
    

    하려면 (지점을 말해 보자)

    단점

    또한, 하나의 선호하는 솔루션에 관계없이, 나는 당신의 web.xml에 다음을 추가하여 디렉토리 목록을 막을 것을 제안합니다 (on / say / images)

    <servlet>
      <servlet-name>default</servlet-name>
      <init-param>
          <param-name>dirAllowed</param-name>
          <param-value>false</param-value>
      </init-param>
    </servlet>
    
  4. from https://stackoverflow.com/questions/3743932/tomcat-serving-static-resources-on-spring-mvc-app by cc-by-sa and MIT license