I am trying to get bundling to work in ASP.NET MVC 4. I am getting a 404 error from the link generated for the bundled CSS. I have done the following:
Installed the "Microsoft ASP.NET Web Optimization Framework" package via NuGet (v4.0.20710.0)
Created a BundleConfig class in the App_Start dir with the following contents:
using System.Web.Optimization;
namespace BsdAppTemplate.Web_Nancy.App_Start
{
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/bundles/styles/cvi").Include(
"~/mainstyles.css"
));
}
}
}
Added the following to Web.config at site root:
<system.web>
<compilation debug="false" targetFramework="4.5" />
<pages>
<namespaces>
<add namespace="System.Web.Optimization"/>
...
</namespaces>
</pages>
</system.web>
Added the following to the head element of my MVC layout file:
@Styles.Render("~/bundles/styles/cvi")
Copied the CSS file referenced in BundleConfig ("mainstyles.css") into the root directory of my web project.
When I view the source of a rendered file, I can see the link appears as:
<link href="/bundles/styles/cvi" rel="stylesheet"/>
This link results in a 404 when browsing to it, or viewing the page request in Chrome's network tab.
I have also tried the equivalent on a web form, but I get the same result (404) from the link generated when I add:
<%: Styles.Render("~/bundles/styles/cvi") %>
Found this question via google results, but the problem in my case was Windows 2008 needed this in web.config
to work when compilation debug=false.
<system.webServer>
<modules>
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
</system.webServer>
It worked fine on Win7 dev machine without this.