2012-02-20 3 views
2

번들링 및 축소를위한 기본 제공 지원에 대해 Scott Gu's article을 ASP .NET 4.5에서 읽었습니다.ASP .NET 4.5 css 및 js 번들링 기능이 포함 된 임베디드 리소스에 대한 지원이 계획되어 있습니까?

그러나 임베디드 리소스에 대한 언급이 없습니다. 이는 동정입니다.

은 과거에 내가 포함 된 리소스를 지원 Client Dependency Framework라는 CodePlex의 프로젝트를 사용했습니다.

꽤 큰 누락과 같습니다. 지원이 계획되어 있습니까?

+0

http://bit.ly/VnI6Cn – user960567

답변

3

나는 이것을 처리하기 위해 자신 만의 변압기를 작성할 수 있다고 확신한다.

  1. System.Web.Optimization.IBundleTransform을 구현하는 클래스를 만듭니다.
  2. 그런 다음 Process 메서드에서 포함 된 리소스의 내용을 가져옵니다. 이것은 너무 어렵지 않아야합니다. This blog post이 도움이 될 수 있습니다.
  3. 그런 다음 변환을 번들에 추가하십시오.

내가 System.Web.Optimization에서 nuget 패키지를 사용하고

var bundle = new Bundle("~/Test").Include("~/Content/Site.css"); 
bundle.Transforms.Add(new EmbeddedResourceTransformer()); 

주, 하지 Microsoft.Web.Optimization (I 두 개의 서로 다른 네임 스페이스의 구현이 왜 아무 생각이없고, 구문이 모두 동일한 지 여부) .

또한 파일 시스템에 반대 이런 식으로 일을의 성능에 대한 신뢰도를 보장 할 수 없습니다.

희망 하시겠습니까?

2

담당자가 충분하지 않아 위의 답변에 대한 몇 가지 의견을 보내주십시오. Hainesy에서 대답이 BundleTransform를 사용하여 제안 ... 직접

을 언급합니다. 임베디드 리소스를 포함하기에는 너무 늦었다 고 생각합니다. BundleTransform은 내용을 원본 파일에서 가져온 후 및 묶음 파일에 넣기 전에 CSS 또는 자바 스크립트 내부의 내용을 변환하는 데 유용합니다. 예를 들어, CSS의 이미지 URL을 dev의 로컬 상대 URL과 생산을위한 CDN URL을 가리 키도록 수정해야하는 경우.

user960567에서 링크가 포함 된 리소스를 사용하는 방법에 대해 설명하지만, 캐치가있다. 이 프로세스는 다른 프로젝트에서 사용 된 공통 컨트롤과 같은 것으로 만 작동합니다.
예 : CSS와 JS가 필요한 텍스트 상자를 만들면 공통 프로젝트에서 HTML 도우미를 만들 수 있습니다.이 도우미는 포함 된 리소스를 페이지로 가져 오는 텍스트 상자와 스크립트 태그를 추가합니다. 공용 프로젝트의 임베디드 리소스를 다른 프로젝트의 번들로 가져올 수 없습니다. 이것은 기본적으로 각 임베디드 리소스에 대해 별도의 스크립트 또는 스타일 태그를 생성합니다. 원하는 것은 아닐 수도 있습니다 (적어도 내가 원하는 것을 원하지는 않습니다.)

-3

필자는이 기능을 사용하는 방법에 대한 자세한 기사를 작성했습니다. 번들 및 소형화 기술을 사용하여 외부 리소스를 마무리하십시오 here.

+2

이 질문에 대한 답변으로 여기에 자습서를 게시하십시오. – cbp

+1

사례와 요점 :이 링크가 깨졌습니다. –