2014-02-25 73 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")(在我們的例子中)。