Is there any way to have a file extension in a bundle name?

一笑奈何 提交于 2019-12-04 17:40:24

问题


I would like to have define a bundle like this:

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

If the bundle name is just "~/style" this works, but with the file extension it always returns a 404. I suspect the server searches for CSS and JS files on the drive and ignores the bundling system, but I can't find anyone else who is trying to include file extensions in bundle names. Is this possible to do without something like a URL rewrite?


回答1:


You could add the following to your <system.webServer> section in web.config:

<modules runAllManagedModulesForAllRequests="true" />

This will ensure that requests for static resources such as .js and .css will pass through the managed modules and be intercepted by ASP.NET MVC.

As an alternative to enabling runAllManagedModulesForAllRequests for all requests you could configure them only for the urls you need to use. So inside the <handlers> add the following:

<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/is-there-any-way-to-have-a-file-extension-in-a-bundle-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!