Global.asax 을 추가합니다. 해당 파일을 열어보면, 여러가지의 event 들을 가지고 있는데, 그 중, application_Start 이벤트에 아래와 같은 코드를 기재합니다.
System.Web.Optimization.BundleTable.Bundles.Add(new System.Web.
Optimization.ScriptBundle("~/bundle/js")
.Include("~/Scripts/*.js"));
System.Web.Optimization.BundleTable.Bundles.Add(new System.Web.
Optimization.ScriptBundle("~/bundle/css")
.Include("~/Styles/*.css"));
설명을 드리자면, bundle table 안에 두개의 bundles 을 직접 생성 및 추가합니다. Scripts 폴더 내부에 존재하는 모든 js 경로를 Include("~/Scripts/*.js")에 지정하면, 기존에는 특정 폴더 내부의 js 경로를 전부 페이지마다 여러 경로를 지정해 주었지만, 이를 경로와 *.js 을 명명하여, System.Web.Optimization.ScriptBundle("~/bundle/js") 라는 하나의 경로를 브라우저에 한 줄로 보여줍니다. 이와 동일하게 CSS 경로도 위 처럼 구현이 가능합니다.
이는 실질적으로 자원들(resources) 를 호출하거나 loading 하는데 있어서 성능 개선을 좀 더 향상 시켜 줄 수 있다고 생각듭니다.
몇몇의 강좌들을 찾아서 본적이 있는데, 거기서는 static 파일에 bundle 을 생성하기 위해서 BundleConfig 파일을 일일이 분리하여 생성한 것을 본적 있습니다. 그리고 global.asax 파일 코드에 static 메소드를 호출하여 이를 bundle 처리 하였더군요.
이는 abstraction(추상화) 을 단계를 하나 더 제공하는 것을 의미합니다. 여기 강좌에선 간단하게 global.asax 파일 내부에 통합하여 기술한 것을 보여줍니다.
이제 이를 구현한 내용은 웹폼 페이지인 .aspx 내부에 bundle을 추가해 봅시다.
Scripts.Render 와 Styles.Render 메소드를 이용하여 global.asax 에 bundle 명을 기재한 사항에 대해 기재하여 아래와 같이 랜더링(Rendering) 합니다.
<%: System.Web.Optimization.Scripts.Render("~/bundle/js") %>
<%: System.Web.Optimization.Styles.Render("~/bundle/css") %>