2014-02-25 72 views
0

我创建一个web项目,当我看到这在我的头标记,和我弄糊涂了:导入CSS文件

<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width" /> 
    <title>@ViewBag.Title</title> 
    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr") 
</head> 

最后两行正在进口到我的应用程序,但我不内容目录中名为ccs的文件,当我没有名称为bundles的目录时,它会变得最糟糕,但它的工作方式非常令人难以置信!

有人能解释给我吗?

PS:

目录结构:

CSS 
| 
|->bootstrap.css 
|->bootstrap.min.css 
|->Site.css 

,我发现了一个名为Modernizr的内部脚本目录中的文件。

回答

1

它调用包含在App_Start文件夹中的BundleConfig类中声明的特定包中的文件。

在特定的情况下@Styles.Render("~/Content/css")呼叫呼吁"~/Content/site.css"

您可以阅读this文件约@ Styles.Render(更多的理解)和@ Scripts.Render()方法。

1

据我所知,在.NET MVC(使用Visual Studio)的某些版本中,您(或其他人)可以在您的项目中设置BundleConfig.cs文件。当你打开这个文件((我的位于App_Start> BundleConfig.cs)时,你会看到捆绑注册。这是一个包含各种文件组的.NET捆绑包。用于创建相互依赖的文件组或捆绑文件,但可以很容易地从_Layout文件中进行优化。

下面是我们公司编辑器的一个捆绑包示例(它的名称,是我们公司编辑所需的所有脚本,并且没有别的):

bundles.Add(
    CreateScriptBundle("~/bundles/crm/companyeditor") 
    .Include("~/Scripts/app/CRM/CompanyEditor/commonEvents.min.js") 
    .IncludeDirectory("~/Scripts/app/CRM/CompanyEditor", "*.min.js", false) 
    .Include("~/Scripts/app/RFQOffering/RFQs.min.js") 
    .Include("~/Scripts/app/RFQOffering/editSubscriptions.min.js") 
    .Include("~/Scripts/app/Quotes/sentQuotesEditorView.min.js") 
); 

因此,不包括<script src=""></script>对于这些文件中的每一个,我们创建了一个捆绑包,并在我们的公司编辑器的_Layout文件中使用@Scripts.Render("~/bundles/crm/companyeditor")(在我们的例子中)。