我們有遺留代碼來維護和解決特定客戶定製問題,我們希望將呼叫路由到某些文件到其他文件。也就是說,當應用程序調用特定的ASPX時,它最終會碰到另一個ASPX。無法在ASP.NET WebForms中路由靜態文件
如果您撥打:
www.foo.com/admin/admin.aspx
實際上,它將擊中:
www.foo.com/customizations/customer1/admin/admin.aspx
這不是一個很好的設計,但是這是遺留代碼。我們只是想解決這個問題。
我們使用System.Web.Routing
框架來解決它。當您將RouteExistingFiles
設置爲true時,此工作正常,但靜態文件(CSS,JavaScript和圖像)除外。 當我第一次嘗試,它檢索這個錯誤:
There is no build provider register for the extension '.css'.
所以,我沒有在註冊爲.css
擴展web.config文件版本提供。我使用這個構建提供者:PageBuilderProvider
,因爲有人在互聯網上推薦它。
它的工作原理!但是CSS內容類型爲text\html
。
我該如何做到這一點?
TL; DR:我想在ASP.NET Web窗體中使用路由來調用特定的CSS文件來實際檢索另一個CSS文件。客戶需要進行定製。
如果你喜歡我可以發佈一個鏈接到我跟着的教程。 –
對不起,您的迴應是,但我確實需要靜態內容的當前網址才能繼續工作。我只需要將它們路由到不同的靜態文件。 ASHX處理程序會要求我更改URLS。不管怎樣,謝謝你。 –
沒有,當我做它的網址沒有改變,你不需要一個ASHX你可以創建一個繼承IHttpHandler的類,我認爲。 –