2013-04-29 2 views
0

모든 자바 스크립트 파일을로드하는 마스터 페이지에 ScriptManager가 있습니다. 그러나 내 파일 중 하나가 너무 커져서 기능적 관심사별로 그룹화 된 파일로 분리하기로 결정했습니다. 그러나 이러한 파일은로드되지 않는 것 같습니다. 새 자바 스크립트 파일에 선언 된 함수를 참조 할 때 null 참조 오류가 발생합니다.자바 스크립트 파일이 ScriptManager에서로드되지 않습니다.

다음은 예입니다. SignOff.js 및 SignOffTools.js가 있습니다. 둘 다 같은 디렉토리에 있습니다. SignOff.js는 원본 큰 파일입니다. SignOffTools.js는 새 파일입니다.

마스터 페이지에 다음 줄이 있습니다.

 <asp:ScriptReference Path="~/Tabs/SignOff.js" /> 
     <asp:ScriptReference Path="~/Tabs/SignOffTools.js" /> 

SignOff.js의 모든 항목이 정상적으로로드됩니다. 그러나 내 ascx 파일에서 SignOffTools.js 함수에 대한 참조를 만들면 onclick 이벤트에서 null 참조 예외가 발생합니다.

Firebug로 추가 조사를 마치면 SignOffTools.js가로드되지 않은 것처럼 보입니다. 그러나 나는 이유를 모른다.

나는 완전히 손실되었다. 레거시 SignOff.js에 대한 참조를 제거하면로드되지 않습니다. 그러나 새로운 파일에 대한 참조를 추가해도로드되지 않습니다. ascx (탭), aspx (페이지) 및 마스터 페이지 레벨에 아무런 영향을 미치지 않고 src 참조를 추가했습니다. 나도 성공없이 탭에 직접 자바 스크립트를 임베드했습니다. 하지만 자바 스크립트를 레거시 SignOff.js 파일에 복사하자마자 모든 것이 작동합니다. 이 행동에 대한 논리를 볼 수 없기 때문에 나는 그것이 어떤 악의적 인 정신의 작용이라고 결론을 내릴 수밖에 없습니다. 다음 단계는 마늘로 PC를 울리고 마더 보드를 통해 나무 지분을 몰아내는 것입니다.

+1

ScriptManager를 사용하여 이런 스크립트를 등록한 적이 한번도 없었습니다. 필자가 필요로하는 곳에서 머리를 수동으로 참조해야했기 때문에 언제나 만족 스러웠습니다. –

+0

확실하지 않습니다. 이것은 기존 앱이며 일관성을 유지하려고합니다. – Legion

+0

네트워크 탭을 검사하여 파일이로드되었거나 발견되지 않았습니까? 홈 페이지에서 캐시를 삭제 한 다음 네트워크 탭을 열고 마우스 오른쪽 버튼을 클릭해야합니다. 새 창에서 Signoff.js 파일을 열고 캐시도 지우십시오. 그런 다음 브라우저를 닫고 다시로드하십시오. – scrappedcola

답변

0

파일 중 하나에서 누락 된 중괄호가 원인이라고 밝혀졌습니다. 이로 인해 해당 지점 이후에 참조 된 모든 파일의 코드가 파싱 할 수 없게되었습니다. 불행히도 Visual Studio에서 오류를 알리지 않았습니다. Resharper를 사용하여 내 친구가 발견했습니다.

관련 문제