Spring MVC REST: статические файлы недоступны из-за URL-шаблона - PullRequest
4 голосов
/ 12 января 2010

Шаблон URL сервлета My Spring Dispatcher - / * (как рекомендует MVC Spring Spring)
Теперь все запросы разрешены этим сервлетом. даже CSS / JS / Изображения также разрешаются и обрабатываются сервлетом.

Итак, Spring MVC пытается найти контроллер ..: (

Как это обойти? Есть ли стандартный выход из этой проблемы ??

& Не хочу менять шаблон URL на / rest / * (поэтому другие статические ресурсы доступны через / css / или / js и т. Д.)

Ответы [ 3 ]

5 голосов
/ 12 января 2010

Вы можете сопоставить свои контроллеры с меньшим набором URL-адресов (например, / app / *), а затем переписать URL-адреса, которые фактически видят ваши пользователи, чтобы они даже не знали о них. Посмотрите пример веб-приложения mvc-basic , в частности web.xml и urlrewrite.xml, чтобы увидеть, как это делается.

2 голосов
/ 12 января 2010

Подключите диспетчер Spring к некоторому подразделу пространства URL и используйте Tuckey для перезаписи URL, с которыми имеет дело пользователь.

http://www.example.org/app/controller/action -> http://www.example.org/controller/action

0 голосов
/ 05 июля 2010

Просто хедз-ап обновление: конфигурация перезаписи по умолчанию, как определено в образце Spring, для меня не сработала. Правила перезаписи для таблиц стилей, сценариев и т. Д. Все еще обрабатывались в правиле / app / * и впоследствии обрабатывались DispatchServlet, что нежелательно.

Мне пришлось добавить атрибут last="true" к правилам styles / scripts / images, чтобы указать, что другие правила не должны применяться, и мне пришлось использовать макрос URL FreeMarker Spring в любых путях включения CSS / JS.

На всякий случай, если кто-то сталкивается с той же проблемой.

...