ASP.NET MVC 프로젝트를 MVC4 using these instructions으로 수동 업그레이드 한 후 새 CSS 및 JavaScript 자산 번들링 및 최소화 기능을 어떻게 설정합니까? MVC4의 ASP.NET 웹 최적화 프레임 워크? 기본 템플릿에는이 모든 설정이 있지만 수동으로 어떻게합니까?수동으로 업그레이드 한 후 MVC4 프로젝트에 새 ASP.NET 웹 최적화 프레임 워크 추가
13
A
답변
31
- 오른쪽 클릭 참조는 NuGet 패키지 관리 및 "Microsoft.AspNet.Web.Optimization"를 추가 (또는 NuGet 콘솔에
Install-Package Microsoft.AspNet.Web.Optimization
을 입력합니다). - Web.config 파일에서 다음을
<system.webServer>
에 추가하면 축소 된 번들이 확장되지 않는 URL로 제공됩니다. 당신의 App_Start 폴더에서<handlers> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers>
는, 새로운 클래스를 호출 BundleConfig.cs를 추가합니다. : 스크립트와 스타일 시트 번들은 다음 Global.asax.cs에서 사용 섹션 위해 Application_Start에 다음 줄을 추가 할 필요를 추가 할
using System.Web;
using System.Web.Optimization;
namespace MvcApplication1
{
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css"));
}
}
}
- 편집 위 : 그것은 다음과 같이 보일한다
//using section
using System.Web.Optimization;
//Application_Start
BundleConfig.RegisterBundles(BundleTable.Bundles);
- 은
@Styles.Render("~/Content/css")
및@Scripts.Render("~/bundles/jquery")
, 일 교체에 전화로 _Layout.cshtml에 CSS와 자바 스크립트 및 태그를 교체 BundleConfig.cs에 추가 한 번들의 이름으로 매개 변수를 설정하십시오. 번들의 이름을 프로젝트의 폴더와 동일하게 지정하지 마십시오.
이제 모든 설정해야합니다 - 전체 여기 된 형상 사용하는 방법에 읽어 : http://www.asp.net/mvc/overview/performance/bundling-and-minification
0
예는 다음 단계가 번들로 따라 작게하다 JS 및 CSS :
- 먼저 오픈 패키지 관리자 콘솔을 열고 명령을 실행하고 웹 응용 프로그램을 프로젝트로 선택하십시오.
설치 패키지 Microsoft.AspNet.Web.Optimization
이동 붙여 넣기 아래의 코드를 마우스 오른쪽 버튼으로 클릭하고보기 코드
을 Global.asax에하기 :
public static void MinifyJavaScriptAndCSS() { var scripts1 = new ScriptBundle("~/bundles/customJSBundle"); scripts1.Include("~/Scripts/script1.js"); scripts1.Include("~/Scripts/script2.js"); BundleTable.Bundles.Add(scripts1); //Bundle Css var css1 = new StyleBundle("~/bundles/customCSSBundle"); css1.Include("~/Styles/style1.css"); css1.Include("~/Styles/style2.css"); BundleTable.Bundles.Add(css1); }
- 을
이것을 Application_Start()에서 호출
내 ASP.NET 응용 프로그램 @Styles -protected void Application_Start() { ApplicationHelper.MinifyJavaScript(); }
이동는
- 이 ViewBag.Title @ 머리
에 줄을 추가 공유/조회에서 _Layout.cshtml합니다.당신이 컴파일 디버그 = true를 설정 한 경우의 Web.config에서 body 태그
//your code @Scripts.Render("~/bundles/customJSBundle") </body>
의 폐쇄하기 전에 ("~/번들/customCSSBundle")
이 추가 렌더링, 파일은 번들로 제공되지 않습니다. false로 설정하면 파일이 번들됩니다.