Spring mvc: ресурс не находит * .ico файлы - PullRequest
13 голосов
/ 10 марта 2011

Мне было очень трудно заставить приложение Spring 3.0 распознавать файлы типа favicon.ico как ресурс.Я определил каталог ресурсов в моем файле spring-context.xml следующим образом:

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

Эта структура каталогов выглядит следующим образом:

/ui
  /images
  /styles
  /scripts
  ...

Spring прекрасно размещает мои изображения, сценарии и стили,Тем не менее, я получаю ошибку 404 при попытке получить любые *.ico файлы в каталоге изображений.Все изображения в формате PNG, GIF и JPG прекрасно работают в одном каталоге.Я попытался более точно указать, в каких каталогах размещать файлы, и даже указал .ico файлы в качестве ресурсов в файле context.xml, но при этом получил те же результаты:

<mvc:resources mapping="/ui/images/*.ico" location="/ui/images" />

Я также попытался добавить отображение сервлетак сервлету по умолчанию.Это, похоже, сработало для некоторых, когда я проводил исследования в Интернете, но не оказалось для меня успешным.

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.ico</url-pattern>
</servlet-mapping>

РЕДАКТИРОВАТЬ: Я также добавил файл favicon.ico в корневой путь веб-приложения.Если я использую png-файл для значка, он работает в любом браузере, кроме IE.Я хотел бы решить эту проблему для всех браузеров, если это возможно.Любая помощь на этом этапе будет принята с благодарностью.

EDIT2: у меня уже есть тег ссылки в документе XHTML:

<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/ui/images/favicon.ico" />

1 Ответ

14 голосов
/ 10 марта 2011

Решением для меня, поскольку я использовал Tomcat 6 для размещения приложения, было добавление типа MIME в файл web.xml приложения, как показано ниже.

<mime-mapping>
    <extension>ico</extension>
    <mime-type>image/vnd.microsoft.icon</mime-type>
</mime-mapping>

Спасибо скаффман!

...