Spring MVC mvc: атрибут расположения ресурсов - PullRequest
3 голосов
/ 21 марта 2011

Ребята, у меня также проблема с загрузкой статических ресурсов.

Я думаю, что все настроено правильно. Но я не понимаю атрибут location mvc: resources . Для чего это?

если у меня есть мои статические ресурсы в папке VAADIN / themes / theme / ... (в нескольких подпапках, изображениях, css, js), какие должны быть правильные значения для атрибутов местоположения и сопоставления?

Когда у меня есть следующее в конфигурации:

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

это не работает. Я полагаю, что следующая часть журнала связана:

17:15:02.897 [http-8080-2] DEBUG o.s.w.s.m.a.DefaultAnnotationHandlerMapping - Rejected bean name 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#6': no
 URL paths identified

Я получаю Статус HTTP 404 , например, http://127.0.0.1/VAADIN/themes/theme/css/style.css

Ответы [ 4 ]

5 голосов
/ 21 марта 2011

location - это местоположение папки, в которой размещены ресурсы.Запись XSD :

Расположение ресурса, из которого будет обслуживаться статическое содержимое, указанное в шаблоне Spring Resource.Каждое местоположение должно указывать на действительный каталог.Несколько местоположений могут быть указаны в виде списка через запятую, и местоположения будут проверяться для данного ресурса в указанном порядке.Например, значение "/, classpath: / META-INF / public-web-resources /" позволит обслуживать ресурсы как из корня веб-приложения, так и из любого JAR-файла в classpath, который содержит / META-INF /public-web-resources / directory, с ресурсами в корне веб-приложения, имеющими приоритет.

С другой стороны, атрибут mapping:

URLшаблон отображения в текущем контексте сервлета, который будет использоваться для обслуживания ресурсов из этого обработчика, таких как "/ resources / **"

Так что mapping указывает, под какими uri будут доступны ресурсы наweb, тогда как location указывает, где находятся эти ресурсы на диске.

1 голос
/ 21 марта 2011

Полагаю, вы не правильно указали местоположение.

  • Является ли ваша папка VAADIN внутри Каталог верхнего уровня WAR (в котором чехол location="/VAADIN/" есть исправить)
  • или это в WEB-INF / классах (в которых дело должно быть location="classpath:/VAADIN/")?
0 голосов
/ 08 октября 2014

устанавливает обработчик для обслуживания статического контента.Атрибут отображения установлен в / resources / **, который включает в себя подстановочный знак в стиле Ant, чтобы указать, что путь должен начинаться с / resources, но может включать любой его подпуть.Атрибут location указывает местоположение файлов, которые будут обслуживаться.Как настроено здесь, любые запросы, чьи пути начинаются с / resources, будут автоматически обслуживаться из папки / resources в корне приложения.Поэтому все наши изображения, таблицы стилей, JavaScript и другой статический контент должны храниться в папке приложения / resources.

0 голосов
/ 06 апреля 2011

Может быть, вы настроили какое-то отображение обработчиков, которое срабатывает перед ресурсом ресурса httptquestresolver (или как он там называется) Убедитесь, что у вас нет AbstractUrlHandlerMapping или любого другого обработчика, который останавливает цепочку отображения со свойством order. Или настройте преобразователь ресурсов с порядком:

<!-- Maps all other request URLs to views -->
<bean id="viewMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="defaultHandler">
        <!-- Selects view names to render based on the request URI: e.g. the "/Home" URL would map to the view named "Home" -->
        <bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />
    </property>
    <!-- This will prevent the mvc:resources to handle requests. Unless, of course, you specify an order in the mvc:resources order attribute
    <property name="order" value="3" /  Removing this will place this just after The ResourceHttpRequestHandler-->
</bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...