MVC에서 스크립트 번들 유틸리티를 사용하는 방법을 배우고 있는데 한 가지 문제점이 있습니다. 각 ScriptBundle의 가상 경로를 구조화하는 방법 사물. 하나는 CDN을 지정할 수있는 생성자를 사용하는 경우 예를 들어, 나는이 (가) BundleConfig 클래스에ASP.NEt MVC 스크립트 이해 번들링 경로 지정
BundleConfig.RegisterBundles(BundleTable.Bundles);
후, 나는 호출 다음 한 Global.asax에있는
을 설정 다음 한 나는이public static void RegisterBundles(BundleCollection bundles)
{
//add link to jquery on the CDN
const string jqueryCdnPath = @"http://code.jquery.com/jquery-2.1.0.min.js";
const string jqueryUiCdnPath = @"http://code.jquery.com/ui/1.10.4/jquery-ui.min.js";
const string jqueryColorCdnPath = @"http://code.jquery.com/color/jquery.color-2.1.2.min.js";
var jqueryQunitCdnPath = @"http://code.jquery.com/qunit/qunit-1.14.0.js";
bundles.Add(new ScriptBundle("~/Resources/Scripts/js/jquery", jqueryCdnPath)
.Include("~/Resources/Scripts/js/jquery/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/Resources/Scripts/js/jquery/ui", jqueryUiCdnPath)
.Include("~/Resources/Scripts/js/jquery/ui/j-{version}/jquery-ui.js"));
bundles.Add(new ScriptBundle("~/Resources/Scripts/js/jquery/color", jqueryColorCdnPath)
.Include("~/Resources/Scripts/js/jquery/color/jquery.color-{version}.js"));
bundles.Add(new ScriptBundle("~/Resources/Scripts/js/jquery/jqueryval")
.Include("~/Resources/Scripts/js/jquery.unobtrusive*", "~/Resources/Scripts/js/jquery.validate*"));
}
그러나 내 페이지를 빌드하고 실행하면 첫 번째 추가시 다음 오류 메시지가 나타납니다.
**Directory does not exist.
Parameter name: directoryVirtualPath
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Directory does not exist.
Parameter name: directoryVirtualPath
Source File: c:\######.Web\App_Start\BundleConfig.cs Line: 30
Stack Trace:
[ArgumentException: Directory does not exist.
Parameter name: directoryVirtualPath]
System.Web.Optimization.Bundle.Include(String virtualPath, IItemTransform[] transforms) +90
Network.Web.BundleConfig.RegisterBundles(BundleCollection bundles) inc:\######.Web.Web\App_Start\BundleConfig.cs:30
Network.Web.MvcApplication.Application_Start() in c:\######.Web\Global.asax.cs:27
[HttpException (0x80004005): Directory does not exist.
Parameter name: directoryVirtualPath]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9936761
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296
[HttpException (0x80004005): Directory does not exist.
Parameter name: directoryVirtualPath]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9915300
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254**
여기에 누락 된 구성 요구 사항이 있습니까? 내 경로가 잘못 포맷 되었습니까?
미리 도움을 주셔서 감사합니다.
번들 및 축소 기능을 사용할 수 있습니까? 번들 및 축소는 Web.config 파일의 compilation 요소에 디버그 특성 값을 설정하여 활성화 또는 비활성화 할 수 있습니다. – SBirthare
번들에 주석을 달아보십시오. 하나씩 문장을 추가하고이 오류를 나타내는 문장을 찾으십시오. CDN 경로가 올바른지, 이러한 진술 중 하나는 잘못된 로컬 경로를 참조합니다. – SBirthare
이렇게하면 첫 번째 추가 명령문 만 전달되고 다른 모든 명령문은 실패합니다. 그래서 나는 다른 사람들에게 옳지 않은 첫 번째 것에 대해 그것이 옳을 수도있는 것을 이해하려고 노력하고 있습니다. – user272671