Styles.Render在MVC4中
在.NET MVC4
项目中, @Styles.Render
是如何工作的?
我的意思是,在@Styles.Render("~/Content/css")
哪个文件调用?
我没有在我的Content
文件夹中有一个叫“css”的文件或文件夹。
它调用包含在App_Start
文件夹的BundleConfig
类中声明的特定包中的文件。
在这种情况下,对@Styles.Render("~/Content/css")
的调用称为“〜/ Content / site.css”。
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
注意区分大小写。 如果你有一个文件
/Content/bootstrap.css
并在你的Bundle.config中redirect到
.INCLUDE( “〜/内容/ Bootstrap.css”)
它不会加载的CSS。
src="@url.content("~/Folderpath/*.css")"
应该呈现样式
正如App_start.BundleConfig中所定义的那样,它只是调用
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
即使删除了该部分,也不会有任何反应。
马球我不会在MVC中使用捆绑由于多种原因。 它不起作用,因为你必须在你的Apps_Start文件夹中设置一个自定义的BundleConfig类。 这样做是没有意义的,当你可以简单地添加一个样式在你的HTML头像这样:
<link rel="stylesheet" href="~/Content/bootstrap.css" /> <link rel="stylesheet" href="~/Content/bootstrap.theme.css" />
您也可以将这些添加到从所有视图调用的Layout.cshtml或partial类中,并将其放入每个页面中。 如果你的样式改变,你可以很容易地改变名称和path,而不必重新编译。
在类中向CSS添加硬编码的链接也会破坏UI和devise与应用程序模型分离的整体目的。 你也不想在c#中pipe理硬编码的样式表path,因为你不能再为不同的设备,主题等构build“皮肤”或单独的样式模型,如下所示:
<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" /> <link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />
使用此系统和Razor,您现在可以从数据库或用户设置中切换出皮肤path,只需dynamic更改path即可更改网站的整个devise。
CSS 15年前的目标是为网站开发由用户控制的和应用程序控制的样式表“皮肤”,这样您就可以将UI外观与应用程序分开,并独立于数据结构重新devise内容。 ….例如打印版本,手机,audio版本,原始XML等
现在回到这个“老式的”,使用C#类的硬编码path系统,像Bootstrap这样的僵化的风格,以及将站点主题与应用程序代码合并,我们又回到了1998年如何build立网站。