Styles.Render in MVC4
In a .NET MVC4
project how does @Styles.Render
works?
I mean, in @Styles.Render("~/Content/css")
which file is it calling?
I dont have a file or a folder called "css" inside my Content
folder.
It's calling the files included in that particular bundle which is declared inside the BundleConfig
class in the App_Start
folder.
In that particular case The call to @Styles.Render("~/Content/css")
is calling "~/Content/site.css".
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Watch out for case sensitivity. If you have a file
/Content/bootstrap.css
and you redirect in your Bundle.config to
.Include("~/Content/Bootstrap.css")
it will not load the css.
A bit late to the party. But it seems like no one has mentioned
bundling & minification of StyleBundle
, so..
@Styles.Render("~/Content/css")
calls in Application_Start()
:
BundleConfig.RegisterBundles(BundleTable.Bundles);
which in turn calls
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
RegisterBundles()
effectively combines & minifies bootstrap.css
& Site.css
into a single file,
<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
But ..
<system.web>
<compilation debug="false" targetFramework="4.6.1" />
</system.web>
only when debug
is set to false
in Web.config
.
Otherwise bootstrap.css
& Site.css
will be served individually.
Not bundled, nor minified:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
链接地址: http://www.djcxy.com/p/67974.html
上一篇: MVC4 Bundle中的{版本}通配符
下一篇: MVC4中的Styles.Render