我想定义一个这样的包:
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/