Весенний ОТДЫХ MVC :статические файлы недоступны из-за URL-шаблона

StackOverflow https://stackoverflow.com/questions/2047774

Вопрос

Мой URL-шаблон сервлета Spring Dispatcher - это /* (как предполагает spring MVC REST)
Теперь все запросы разрешаются этим сервлетом.даже CSS / JS / Images также разрешаются и обрабатываются сервлетом..

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

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

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

Это было полезно?

Решение

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

Другие советы

Сопоставьте Spring dispatcher с некоторым подразделом пространства URL и используйте Такки чтобы переписать URL-адреса, с которыми имеет дело пользователь.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top