From a brand-new ASP.NET MVC 4 Beta Web Application, I'm re-arranging my folders to match Rob Conery's VidPub.Web example
Specifically, this means that the final directory structure for content looks like this
VidPub.Web | ---Public | |---Images |--- *.png |---javascripts |--- *.js |---stylesheets |----themes |---base |--- images |--- *.css |----site.css
However, when I change the following lines in _Layout.cshtml
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Content/css")"
rel="stylesheet"
type="text/css" />
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Content/themes/base/css")"
rel="stylesheet"
type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Scripts/js")"></script>
to
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Public/stylesheets/css")"
rel="stylesheet"
type="text/css" />
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Public/stylesheets/themes/base/css")"
rel="stylesheet"
type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Public/javascripts/js")"></script>
I end up with absolutely nothing in the resulting HTML.
<link rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" />
<script></script>
Why isn't it picking up the files in their new locations?
Under Application_Start
in Global.asax.cs
use BundleTable.Bundles.EnableDefaultBundles();
instead of BundleTable.Bundles.RegisterTemplateBundles();
If you look at the source for RegisterTemplateBundles
you can see that it actually only looks for (and adds) specific js and css files. EnableDefaultBundles
on the other hand does pretty much the same as when you add you own bundles.
It appears you have to register your own bundle when using non-default directories. I added the following to Application_Start
and it fixed the problem
var bundle = new Bundle("~/Public/stylesheets/css", new CssMinify());
bundle.AddDirectory("~/Public/stylesheets", "*.css", true);
BundleTable.Bundles.Add(bundle);
bundle = new Bundle("~/Public/javascripts/js", new JsMinify());
bundle.AddDirectory("~/Public/javascripts", "*.js", true);
BundleTable.Bundles.Add(bundle);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With