내가 알 수있는 한 (System.Web.Optimization
의 솔직한 문서가 매우 희소하기 때문에) ASP.NET에서 번들링이 작동하는 방법은 ScriptBundle
과 StyleBundle
에 해당하는 파일 세트 (자바 스크립트 또는 CSS)를 등록하고이를 연결하는 것입니다 가상 경로로; 예 : 모든 jQuery UI 스크립트에 대해 ~/bundles/jqueryui
. 나중에 ASP.NET은 비 디버그 모드에서 실행 중일 때 이러한 파일을 축소 할 수 있으며 축소 된 버전은 번들에 대해 지정한 가상 경로에서 사용할 수있게됩니다.ASP.NET 번들 - 기본 가상 경로?
기본 번들 설정은 가상 경로로 ~/bundles/...
이라는 일부 스크립트 번들을 등록하고 가상 경로로 ~/Content/css
인 일부 CSS를 등록합니다. 내 질문은,이게 모순이 아닌가? ~/bundles/js/...
및 ~/bundles/css/...
과 같은 것이 더 적합하지 않습니까? 실제로 ~/Content
디렉토리는 실제로 실제 디렉토리로 존재하므로 이름 충돌의 가능성이 있습니다. 나는 가상 번들 경로가 이 아니고이 존재하지 않는 디렉토리가되고 실제 파일 시스템에 생성되지 않기를 바란다고 생각했다. ~/Content/css
이 내가 이해하지 못하는 CSS 번들 가상 경로에 사용되는 이유가 있습니까?
감사합니다.이 대답은 Microsoft가 그랬던 것 같아서 생각하지 않았습니다. 나는 ~/Content/cssBundles와'~/Content/jsBundles'와 같은 무언가의 기본 경로를 사용했다면 더 일관성이 있다고 생각합니다. – Jez
@jez MVC 팀에서 Microsoft에서 일하므로 확실합니다. – Eilon
이 문제를 해결하기 위해 CssUrlRewriteTransform이 있습니다. CSS 파일의 URL을 다시 작성하므로 원래 디렉토리가 아닌 가상 디렉토리에 상대적입니다. 그런 식으로 CSS 파일의 새 위치에도 불구하고 원래 디렉토리의 파일을 찾을 수 있습니다. – Triynko