하나의 옵션은 레이아웃 페이지 내에서 @RenderSection
을 사용하는 것입니다. 레이아웃 페이지에서 레이아웃을 사용하는 모든 페이지에 공통된 파일 및/또는 번들을 포함하고 페이지 특정 파일이 포함될 자리 표시자를 지정하려면 @RenderSection
을 사용하십시오 (두 번째 매개 변수 = 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 개월 전부터 생각합니다). 파일을 편집하면 새롭게 축소 된 버전이 만들어지고 이전 버전이 브라우저 캐시에서 제거됩니다.