sbk*_*ing 15 asp.net-mvc asp.net-mvc-4 bundling-and-minification asp.net-optimization
我想定义一个这样的包:
bundles.Add(
new StyleBundle("~/style.css").Include(
//...
));
Run Code Online (Sandbox Code Playgroud)
如果捆绑包名称只是"~/style"这样,但是文件扩展名它总是返回404.我怀疑服务器在驱动器上搜索CSS和JS文件并忽略捆绑系统,但是我找不到其他人正在尝试在包名称中包含文件扩展名.这可能没有像URL重写这样的东西吗?
Dar*_*rov 24
您可以将以下内容添加到<system.webServer>web.config中的部分:
<modules runAllManagedModulesForAllRequests="true" />
Run Code Online (Sandbox Code Playgroud)
这将确保对静态资源的请求,例如.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>
Run Code Online (Sandbox Code Playgroud)