2009-12-22 3 views
7

우리는 해당 페이지와 관련된 50 개 이상의 JavaScript 행을 포함하는 소수의 ASP.net 페이지를 보유하고 있습니다. CruiseControl 빌드 과정에서 자바 스크립트를 축소하고 싶습니다.ASP.net을 빌드하는 동안 인라인 자바 스크립트를 축소 하시겠습니까?

우리는 이미 YUI Compressor를 사용하여 전체 자바 스크립트 및 CSS 파일을 압축합니다. 그러나 우리는 인라인 자바 스크립트를 수행하는 방법을 알아낼 수 없습니다.

asp.net 페이지를 회전하고 자바 스크립트를 축소하는 MSBuild 작업이 있습니까?

답변

4

인라인 자바 스크립트 번들 가능하고 작게하다하다이

http://weblogs.asp.net/imranbaloch/archive/2012/07/25/bundling-and-minifying-inline-css-and-js.aspx

+0

안녕하세요 친구,이 인라인 스크립트 minifier 내 위젯 템플릿을 엉망으로되어있다.

1

사용자 지정 코딩 없이는이 작업을 수행 할 수 없습니다. 가장 쉬운 방법은 아마도 모든 .aspx 파일을 뱉어 내고 모든 자바 스크립트를 정규식으로 만드는 msbuild 파일에 PreBuild 단계를 만드는 것입니다. 그런 다음 YUI를 사용하여 내용을 축소하고 원래 버전을 축소 된 버전으로 바꿉니다.

asp.net 페이지를 포함하여 압축하는 MbCompression도 확인하고 싶지만 인라인 자바 스크립트를 축소하지는 않습니다.

2

나는 javascript를 메서드로 추출하여 .js 파일로 옮깁니다. 대신 페이지의 관련 매개 변수를 사용하여 함수를 호출하십시오. 복잡한 절차가 아니며 관리하기가 훨씬 쉽습니다 (코드가 적음). 클라이언트 측 콘텐츠 캐싱의 이점도 얻을 수 있습니다.


기타 도움이되는지 확실하지 않은 경우 Google의 폐쇄가 실제로 좋게 보입니다.

http://code.google.com/closure/

압축 옵션 : 자바 실행 파일 또는 웹 서비스로 사용할 수

http://code.google.com/closure/compiler/docs/api-tutorial3.html.

0

처리 할 수 ​​undleMinifyInlineJsCss라는 흥미로운 블로그 NuGet 패키지가있다.

public static MvcHtmlString AddScriptSource(this HtmlHelper helper, Func<dynamic, HelperResult> source, string key) 
{ 
    string scriptSource = source(null).ToHtmlString(); 

    // Cache scriptSource here 

    return MvcHtmlString.Empty; 
} 

이 같이 사용합니다 :

@Html.AddScriptSource(@<text>$(document).ready(function() { $('h1').text('The current controller is @ViewContext.RouteData.Values["controller"].ToString()'); });</text>, "test") 

내가에서 몇 주 전에이 주위에 들러와 minifier을 만든 템플릿 면도기 헬퍼하면 아래와 같은 확장 메서드를 만들 수 있습니다 :

https://github.com/philpeace/CodePeace.StrawberryJam

관련 문제