Я не могу отобразить значок моего приложения tomcat - PullRequest
2 голосов
/ 25 марта 2011

Я положил значок в корневую папку приложения. Но я не могу показать это. Если я попытаюсь указать на него браузер, я получу 404.

Теперь у меня есть это отображение для моего сервлета:

<servlet-mapping>
    <servlet-name>springDispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

и пока я не могу изменить все только ради значка .... у вас есть какое-нибудь исправление, которое не так травматично?

Ответы [ 2 ]

3 голосов
/ 25 марта 2011

В зависимости от того, как вы подаете любимый значок пользователям, вы можете попробовать что-то вроде следующего.

Создайте новое веб-приложение, назовем его IconDispatcher. Web.xml этого приложения может быть пустым. Тогда в вашем основном приложении отображаемые страницы будут иметь следующее в заголовке

<link rel="icon" type="image/ico" href="/IconDispatcher/favicon.ico"/>

Поскольку Tomcat будет использовать наиболее конкретный из возможных путей при обслуживании страницы, он должен перейти в новое приложение Icon, чтобы получить файл favicon.ico вместо просмотра в основном приложении.

Если вы не хотите создавать новое веб-приложение только для обслуживания изображения, вы можете создать новый диспетчер, который используется только для пересылки запрошенного ресурса обратно пользователю. Отображение URL будет более конкретным, поэтому запросы будут отправляться на соответствующий сервлет

<servlet-mapping>
    <servlet-name>iconDispatcher</servlet-name>
    <url-pattern>/Icon</url-pattern>
</servlet-mapping>

Другим вариантом может быть размещение веб-сервера перед Tomcat. Делая это, вы можете передавать весь свой статический контент с веб-сервера и только перенаправлять нестатический контент на сервер tomcat для обработки.

Надеюсь, что эти идеи помогут

1 голос
/ 30 января 2013

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

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