asp.net-mvc - 有没有办法在包名中添加文件扩展名?

标签 asp.net-mvc asp.net-mvc-4 asp.net-optimization bundling-and-minification

我想定义一个这样的包:

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>

关于asp.net-mvc - 有没有办法在包名中添加文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931461/

相关文章:

asp.net-mvc-4 - 具有捆绑和缩小功能的 ASP.NET MVC 4 应用程序,为什么在 Debug模式下启用缩小?

javascript - 在 Script.RenderFormat 中使用 join

asp.net - 如何有效地在 bundle 中添加 .min 和 .debug 文件

javascript - Web Api 2 登录和注册操作、JavaScript 问题

asp.net-mvc - HTML5 离线 list /功能如何与 ASP.NET MVC 4 配合使用?

c# - 异步模块或处理程序已完成,而异步操作仍未决

asp.net-mvc-4 - MVC 路由和子文件夹

asp.net-mvc-4 - ASP.NET MVC 中的捆绑文件位置

c# - 使用 MEF 从 X 个文件夹导入零件

asp.net-mvc - 如何在两个区域使用一个默认成员(member)提供商?