2015-09-22 2 views
2

Я настроил мой web.xml сTomcat служит неправильный тип содержимого «текст/html» для .svg ресурса

<mime-mapping> 
    <extension>svg</extension> 
    <mime-type>image/svg+xml</mime-type> 
</mime-mapping> 

, но когда я принести ресурс, тип содержимого в заголовке ответа установлен в положение «текст/html». Существуют ли конфликтующие факторы, которые могут вызывать такое поведение?

+0

- это расширение файла того, что вы обслуживаете, в .svg? – leeor

+0

Возможно, ресурс svg не обслуживается сервлетом по умолчанию? – wero

+0

@wero На самом деле я не использую сервлет по умолчанию. По умолчанию сервлет, вы имеете в виду сервлет с url-pattern = "/"? Или класс DefaultServlet, предоставляемый apache? – user2066880

ответ

3

ServletContext имеет способ String getMimeType(String file), который обеспечивает сопоставление между расширением файла и строкой типа mime.

Вы можете настроить это сопоставление в конфигурации сервера (например, в Tomcats conf/web.xml) или в дескрипторе развертывания веб-приложения.

Сервлет по умолчанию для контейнера сервлета, который используется для обслуживания статического содержимого, использует это сопоставление для установки типа содержимого ответа (полученного из имени файла обслуживаемого ресурса).

Теперь, если есть сервлет приложения, который генерирует ответ, сам сервлет несет ответственность за установку типа содержимого.

+0

Отличный, тщательный ответ. Это определенно моя проблема, спасибо. – user2066880

1

Ваша конфигурация выглядит правильно. Tomcat автоматически создаст заголовок типа контента на основе расширения файла, используя предоставленные сопоставления. Убедитесь, что ресурс, на котором вы работаете, имеет расширение этого файла.

+0

Yup Я проверил, что ресурс имеет расширение .svg. – user2066880

Смежные вопросы