Подтвердить что ты не робот

Spring mvc: ресурс не находит *.ico файлы

Мне было очень трудно заставить мое приложение 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>

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

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

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

Ответ 1

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

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

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