My web app is using a large icon set with jquery-ui and jqgrid.
In order to easily maintain the changes to the CSS to accommodate the larger icons when upgrading jquery-ui or jqgrid I have a separate CSS file where I have a bunch of overrides.
As you can imagine this override file MUST be included after the jquery-ui stylesheet and the jqgrid style sheet.
I put all my stylesheets into a bundle like so
bundles.Add(new StyleBundle("~/Content/dark-hive/allstyles").Include(
"~/Content/dark-hive/jquery-ui-1.8.23.custom.css",
"~/Content/ui.jqgrid.css",
"~/Content/jquery-ui-fixes.css",
"~/Content/icons.css",
"~/Content/site.css"));
But it is being rendered like so!
<link href="/Content/dark-hive/jquery-ui-1.8.23.custom.css" rel="stylesheet"/>
<link href="/Content/jquery-ui-fixes.css" rel="stylesheet"/>
<link href="/Content/ui.jqgrid.css" rel="stylesheet"/>
<link href="/Content/icons.css" rel="stylesheet"/>
<link href="/Content/site.css" rel="stylesheet"/>
How can I configure my bundle to render in the correct order?
Update
Ok, this is dumb but it worked.
No matter what I did the files would always render incorrectly. So I tried something stupid and added jquery-ui-fixes.css first and jquery-ui-1.8.23.custom.css last.
Suddenly my order is
<link href="/Content/jquery-ui-fixes.css" rel="stylesheet"/>
<link href="/Content/dark-hive/jquery-ui-1.8.23.custom.css" rel="stylesheet"/>
<link href="/Content/ui.jqgrid.css" rel="stylesheet"/>
<link href="/Content/icons.css" rel="stylesheet"/>
<link href="/Content/site.css" rel="stylesheet"/>
I renamed my javascript file to jqueryuifixes.css and now it’s order is preserved in the lower js files.
I’m thinking that if a stylesheet has a – in the name it gets prioritized first for some reason and it’s order is maintained with other files with a – in it.
If anyone can explain this I’ll give them the check.
If you include each file individually, the bundle will respect your order…
UPDATE
Even using explicit order, you’ll find that there is a rather handy built-in ordering system that orders specifically named files first over all others. To completely clear this out, you can use:
And you can add your own custom ordering using:
Essentially, there is a massive built-in list of files that will get put in a certain order before any file that isn’t in the list – but these options let you take control.