2014-04-11 102 views
1

在Tomcat 6服務器上託管的現有Java Web應用程序中,我注意到所有以某些特定擴展名完成的URL(例如.png.gif)均靜態地提供,而如果替換擴展名通過像.eot這樣更奇特的東西,它會被一個servlet處理。如何配置Tomcat靜態提供哪些文件擴展名

這個配置文件擴展名列表在哪裏?我檢查了web.xmlserver.xml,但沒有發現任何提及pnggif

回答

3

只要沒有定義servlet(-mapping),就會靜態地提供所有文件。的MIME擴展預先定義在雄貓默認的web.xml在文件夾/ CONF:

<!-- ===================== Default MIME Type Mappings =================== --> 
<!-- When serving static resources, Tomcat will automatically generate --> 
<!-- a "Content-Type" header based on the resource's filename extension, --> 
<!-- based on these mappings. Additional mappings can be added here (to --> 
<!-- apply to all web applications), or in your own application's web.xml --> 
<!-- deployment descriptor.            --> 

<mime-mapping> 
    <extension>123</extension> 
    <mime-type>application/vnd.lotus-1-2-3</mime-type> 
</mime-mapping> 
... 
+0

已經有一個MIME映射爲'eot'延伸:' EOT應用/ vnd.ms-fontobject'。爲什麼它沒有像其他任何靜態資源那樣服務呢? – fiddler

+0

它是如何服務的?我想你的意思是不喜歡下載,但在瀏覽器中打開? – Stefan

1

除了@Stefoan sollution這是最優的一個Tomcat AS定義映射到default作爲名稱DefaultServlet並用於所有的靜態資源( jpg,html,css,gif ...)。在這裏,你可以找到the code base

所以,你可以只添加一個servlet映射指向它服務於某種自定義的文件擴展名的靜態資源:

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.eot</url-pattern> 
</servlet-mapping> 
相關問題