3
MVC.Net 번들링 및 축소 기능을 사용하고 있습니다. 번들을 렌더링하는 페이지를로드 할 때 (예를 들어 JQuery를 사용하고있는 경우), 브라우저에서 CDN과 폴백 모두를 요청하여 웹 서버에 2 번 요청합니다. 서버는 분당 2000 건의 안타를받을 것으로 예상되므로 스크립트 요청을 절반으로 줄일 수 있다면 꽤 좋습니다. 그래서 내 질문입니다 : 왜 대체가 브라우저에 의해 요청하고 그것을 방지 할 수 있습니까? 여기 MVC.Net Cdn 콜백 대체 어쨌든
는 내 내 스크립트 호출 내.cshtml
에서
BundleConfig
BundleTable.EnableOptimizations = true;
bundles.UseCdn = true;
var bundle = new ScriptBundle("~/bundles/JQueryCore", "//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js")
{
CdnFallbackExpression = "window.jquery"
};
bundle.Include("~/Scripts/JQuery/jquery-2.1.1.js");
bundles.Add(bundle);
@Scripts.Render("~/bundles/JQueryCore")
생성 된 HTML은 다음과 같습니다 : 당신은 라이브러리에 맞게
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"></script>
<script>(window.jquery)||document.write('<script src="/bundles/JQueryCore"><\/script>');</script>
실망합니다. 나는 올바른 코드를 넣지 않았고, fallback 식은 실제로 "window.jQuery"입니다. 대답을 편집 할 것입니다. – TopinFrassi
정말 'window.jquery'가 아닌가요? 그렇다면 'Q'를 대문자로 바꿔서 모두 수정해야합니다. –
글쎄, 그게 다야. 엄청 고마워! 내 편집 (CdnFallbackExpression 테스트/소스)을 반영하도록 답변을 편집하고 싶을 수도 있습니다. – TopinFrassi