0
與將ASP.NET HTTP處理程序映射到靜態擴展如* .css有關的一些意外後果是什麼?將處理程序映射到靜態擴展
<add verb="*" path="handler.css" type="Web.HttpHandler.ThemeCssHandler" />
默認情況下,*的.css註冊爲applicationHost靜態內容(下IIS7):
<staticContent lockAttributes="isDocFooterFileName">
<mimeMap fileExtension=".css" mimeType="text/css" />
通常不會被IIS獨自撐起更有效的靜態請求?
關鍵動機實際上是在其已知的擴展下提供動態CSS,而不是類似* .axd(爲了簡化和兼容OOTB高速緩存策略);但我們希望確保這不會降低非動態CSS請求的服務。
謝謝,瑞克;在客戶端上,請求將使用自定義的HttpCachePolicy傳遞與傳統* .css請求相同的頭文件。我更關心的是靜態文件通常由本機處理程序處理 - 例如, 。是否將託管處理程序與靜態擴展(如* .css)關聯會更改所有* .css請求的執行管道?另外,雖然我們還沒有證實這一點,但我會想象動態* .css仍然有資格進行內核緩存。 –
Nariman
2010-01-04 21:30:07
是的,處理程序是基於文件擴展名分配的,所以如果爲* .css設置一個,它將應用於所有CSS文件。但是,本機處理程序和託管程序本身之間的性能差異不會很大,除非您的計算機除了提供CSS文件外什麼也不做。如果沒有特別的注意,這個大的性能影響就在緩存方面。通過http.sys進行內核緩存仍然是可能的(因爲它適用於所有動態文件),但前提是必須選擇適當的HttpCachePolicy,這對於動態文件而言默認情況下不會執行。 – RickNZ 2010-01-04 23:47:43