2011-01-10 3 views
5

안녕하세요!ASP.NET MVC 용 CSS 및 JavaScript 파일 결합, 최소화 및 gzip

나는 CSS, JavaScript 파일을 결합, 최소화 및 gzip 할 수있는 솔루션을 찾고 있습니다. (구축하는 동안 처리를 수행하는) 작업을 구축 VS의 형태

  • (캐싱 결과) 즉시 처리 파일과 ASP.NET 핸들러 \ 모듈의 형태로

    • : 그들이 두 가지 형태로 올 것 같다

    일반적으로 나도 좋습니다.

    많은 솔루션을 살펴 봤는데 (이 기사의 ASP.NET 처리기 인 http://www.codeproject.com/KB/aspnet/httpcompression.aspx을 많이 사용합니다), 어쩌면 뭔가 "나와야합니다"라는 메시지가 나왔습니다.

    미리 감사드립니다.

  • 답변

    6

    여기 내 조언은 다음과 같습니다. 빌드 작업과 HTTP 캐시 출력을 사용하십시오.

    빌드 작업 측면에서 프로젝트 파일, MSBUILD 파일 또는 NANT 파일에 연결할 수있는 명령 줄 유틸리티가있는 가장 좋아하는 JavaScript minifier (내 즐겨 찾기는 Google Closure Minifier)를 확인해야합니다. CSS와 같은 거래 (나는 개인적으로 Yahoo! YUI Compressor를 사용한다). LESS을 사용하고 있다면 확실하게 YUI 압축기와 결합 할 수 있습니다. 이미지를 최적화하려면 optipng을 사용합니다. 이 사람들이 각자의 사이트에서 어떻게 작업하는지에 대한 지침이 있습니다.

    이제이 파일들을 모두 최적화하고 최적화 한 후에는 MVC 용 처리기 또는 컨트롤러 동작을 사용하여 출력하려고합니다. 후속 요청이 첫 번째 요청에 다운로드 한 파일을 기본값 있도록 만료를 설정하려면이 코드에서 실행할 수 있습니다 :

    Response.ExpiresAbsolute = DateTime.Now.AddYears(1); 
    

    당신이 그렇게 캐시 파괴하는 전략을 할 것입니다 더 많은 것보다는 아마를 콘텐츠 파일을 변경할 수 있습니다. 임의 매개 변수를 처리기에 전달하여이 작업을 수행 할 수 있습니다. 이 문제를 해결할 수있는 몇 가지 방법이 있습니다. 단지 Google뿐입니다.

    희망이 도움이됩니다.

    +0

    응답 해 주셔서 감사합니다. 저는 CSS와 JS (ASP.NET과 PHP 모두) 처리를 위해 이러한 파이프 라인을 손으로 조립하는 데 많은 노력을했습니다. 번들/구성 요소를 보았습니까? – artvolk

    +0

    @artvolk '번들/구성 요소'는 무엇을 의미합니까? – zowens

    +0

    나는이 모든 것을 좋은 방법으로 VS로 감싼 무언가 (라이브러리? dll? msbuild task?)를 의미한다. – artvolk

    2

    소규모 중간 규모 사이트의 경우 telerik mvc components을 사용하고 있습니다. NuGet을 사용하여 추가하고 구성하는 것이 간단했습니다.

    +0

    답장을 보내 주셔서 감사합니다. 번들의이 부분을 의미합니까? http://www.telerik.com/products/aspnet-mvc/web-asset-managers.aspx#combination – artvolk

    +0

    예. 웹 자산 관리자가 모든 것을 처리합니다. 나는 그것의 오픈 소스 버전을 사용하고있다. –

    2

    나방 (다른 것들 중에서도)은 모든 자바 스크립트/CSS 요청을 즉시 처리 할 수 ​​있습니다. Wiki: Javascript을 참조하십시오.

    가장 좋은 점은 부분 뷰에서 작성한 부분을 포함하여 페이지 하단에 모든 자바 스크립트를 넣을 수 있다는 점입니다. Wiki: Inline script.