3

I've read several articles and been all over the internet trying to figure out why my BundleConfig isn't working properly even when running locally. I've got the scripts and css specified:

       bundles.Add(new StyleBundle("~/Content/css").Include(
            "~/Content/font-awesome.css",
            "~/Content/frontend.css",
            "~/Content/brand.css",
            "~/Content/style.css",
            "~/Content/variables.css",
            "~/Content/rateit.css",
            "~/Content/bootstrap.css",
            "~/Content/bootstrap.css"
            ));


        bundles.Add(new StyleBundle("~/Content/fonts").Include(
            "~/Fonts/Enzo/stylesheet.css",
            "~/Fonts/DinCondensed/stylesheet.css"
            ));

        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
            "~/Scripts/jquery-{version}.js",
            "~/Scripts/jquery.rateit.js"
            ));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
            "~/Scripts/bootstrap.js"
            ));

        bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
            "~/Scripts/main.js",
            "~/Scripts/mem-geninfo.js",
            "~/Scripts/fastclick.js"
            ));

        bundles.IgnoreList.Clear();

And I've referenced them appropriately in the _Layout.cshtml.

<head>
//Code removed for clarity
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/fonts")
</head>

<body>
//Code Removed for clarity
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/scripts")
@RenderSection("scripts", required: false)
</body>

My web.config:

<compilation debug="true" targetFramework="4.5" />

But everything is generating 404 Not Found on page load. And when debugging with Chrome the Content and bundles folders show up under my localhost site. I've got other projects and it works just fine in them. I inherited this project and I think it was just started as a Blank MVC Project. So possibly something is missing from configs. Therefore can't get the Bundles to work at all.

UPDATE - Web.config:

<configuration>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>     
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="BundleModule" />
      <add name="BundleModule" type="System.Web.Optimization.BundleModule" />
    </modules>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Any advice on what I'm doing wrong?

Thanks

2
  • have you built the project? Commented Mar 10, 2015 at 16:25
  • Of course. I've been working with it all morning. Commented Mar 10, 2015 at 16:29

2 Answers 2

4

Try adding this to your web.config, in the system.webServer section

<modules runAllManagedModulesForAllRequests="true">  
  <remove name="BundleModule" />  
  <add name="BundleModule" type="System.Web.Optimization.BundleModule" />  
</modules>  

EDIT
Since you said you're inheriting the project, ensure you are registering the bundles, usually in Global.asax -

protected void Application_Start()
{
    ...
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

It's easy to overlook this

Sign up to request clarification or add additional context in comments.

4 Comments

Can you try posting more of your web.config? Obv. remove sensitive strings etc...
Damnit. I'm an idiot. Did I mention I inherited this project? I completely overlooked that. Thanks.
runAllManagedModulesForAllRequests="true" is overkill as an attempt to make bundling work.
Editing the Global.asax is especially important if you created a blank project and added the Microsoft ASP.NET Web Optimization Framework. For BundleConfig you'll also need to add a reference to System.Web.Optimization for BundleTable.
0

The post have sometime but it might help someone looking for this, I have found that if you define your bundle name as your files path, it works, no matter if you see any name working on your developer machine, when you publish to IIS your styles and scripts are not finded by the bundler

Let's say you have this files

~/Content/plugins/summernote/summernote-s4.css
~/Content/plugins/summernote/summernote.css

Name your bundle as the path with an extra word at the end, let's say 'bundles' in such a way it gets this way

bundles.Add(new StyleBundle("~/Content/plugins/summernote/bundles").Include(
   "~/Content/plugins/summernote/summernote-bs4.css",
   "~/Content/plugins/summernote/summernote.css"));

Hope it helps

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.