[英]Managing js and css files in ASP.NET MVC
我對ASP.NET MVC 4還是相當陌生,並且想知道ASP.NET包含CSS和JS文件的方式是什么。
背景
在我的PHP項目中,我通常在控制器中包含用於CSS和JS文件名的數組。 這些數組在主模板中傳遞,在該模板中,函數循環通過並生成每個項目的html標簽,並在此時自動對其進行版本控制。 CSS位於<head>
而JS位於</body>
標記之前。
我知道的事情
題
我應該如何從視圖(甚至是控制器)中包含(並可能像BundleConfig一樣自動版本化並縮小)頁面特定的js和css文件?
一種選擇是在布局頁面中使用@RenderSection
來實現此目的。 在布局頁面中,您使用布局包括所有頁面@RenderSection
的文件和/或包,並使用@RenderSection
指定將包含頁面特定文件的占位符(請注意2nd參數= false
使其成為可選)
布局頁面
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="~/Content/Common.css" rel="stylesheet" /> // Common .css files here
@RenderSection("styles", false) // Place holder for optional page specific .css files
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<div id="content">
@RenderBody()
</div>
@Scripts.Render("~/bundles/jquery") // Common .js files or bundles
@RenderSection("scripts", required: false) // Place holder for optional page specific .js files or bundles
</body>
</html>
然后在頁面中,為頁面特定的包和/或文件定義部分
@model ....
// Page specific html
@section styles {
<link href="~/Content/page-specific-stylesheet.css" rel="stylesheet" />
}
@section Scripts {
@Scripts.Render("~/bundles/page-specific-bundle")
<script src="~/Scripts/page-specific-file.js"></script>
<script type="text/javascript">
// page specific script
</script>
}
即使沒有一個文件,也沒有理由不能為頁面特定的文件創建捆綁軟件。 好處是,對於您的生產環境,文件將自動縮小(除非您已經在同一文件夾中附加了.min.js的文件)。 默認情況下,捆綁包在瀏覽器中緩存(我認為是12個月),如果您編輯文件,則會創建一個新的縮小版本,並將舊版本從瀏覽器緩存中刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.