2013-07-02 1 views
2

Как заставить статические ресурсы (HTML, CSS, JS) обслуживаться по другому пути, чем то, что указано в каталоге/webapp /?Изменение пути для обслуживания статических ресурсов

Скажем, у меня есть ресурс по следующему пути в моем веб-приложение:

/src/main/webapp/client/mypage.html 

Я хочу чтобы клиенты могли получить к нему доступ по следующему адресу:

/myapp-context/v1/client/mypage.html 

Как я могу указать общий корневой URL («v1») для этих ресурсов в моем web.xml есть ли фильтр по умолчанию или статический ресурс, который я могу настроить, который позволит это поведение? В качестве альтернативы, можно ли указать базовый URL для всего приложения за пределами контекстного корня?

ответ

3

Вы видели класс org.springframework.web.servlet.DispatcherServlet?

В web.xml:

<servlet> 
<servlet-name>dispatcher</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>dispatcher</servlet-name> 
<url-pattern>/</url-pattern> 
</servlet-mapping> 

И в dispatcher-servlet.xml:

<mvc:resources mapping="/v1/client/*.html" location="/client/pages/" /> 
<mvc:resources mapping="/v1/client/*.js" location="/client/js/" /> 
<mvc:resources mapping="/v1/client/*.css" location="/client/css/" /> 

Если вы хотите использовать тег base см relative paths.

1

Определить

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

от конфигурации диспетчера-сервлет.

Спасибо!