Asp.net-Mvc

有沒有辦法在包名中添加文件副檔名?

  • February 20, 2015

我想定義一個這樣的包:

bundles.Add(
   new StyleBundle("~/style.css").Include(
       //...
));

如果捆綁名稱只是"~/style"這樣,但文件副檔名總是返回 404。我懷疑伺服器在驅動器上搜尋 CSS 和 JS 文件並忽略捆綁系統,但我找不到其他正在嘗試的人在包名稱中包含文件副檔名。如果沒有 URL 重寫之類的東西,這可能嗎?

您可以將以下內容添加到<system.webServer>web.config 中的部分:

<modules runAllManagedModulesForAllRequests="true" />

這將確保對靜態資源的請求(例如.js和).css將通過託管模組並被 ASP.NET MVC 攔截。

作為啟用runAllManagedModulesForAllRequests所有請求的替代方法,您可以僅為需要使用的 url 配置它們。所以在裡面<handlers>添加以下內容:

<handlers>
   <!-- ... -->
   <add name="scriptBundle" verb="*" path="script.js" type="System.Web.Optimization.BundleHandler, System.Web.Optimization" preCondition="managedHandler" />
   <add name="cssBundle" verb="*" path="style.css" type="System.Web.Optimization.BundleHandler, System.Web.Optimization" preCondition="managedHandler" />
</handlers>

引用自:https://stackoverflow.com/questions/12931461