사이트 모음 팝 퀴즈 : _layouts vs 스타일 라이브러리
-
10-12-2019 - |
문제
첫째, 포트 80 : 에 단일 웹 응용 프로그램 내에 2 개의 사이트 모음이 있다고 가정 해 봅시다.
- 주요 사이트 모음 : /
- 중첩 사이트 컬렉션 : / sites / special /
이므로 사이트 모음에서 모듈을 가지고 있다고 가정 해 보겠습니다. 그로 인해 사이트 모음을 통해 두 개의 스크립트를 추가하는 것입니다 (사용자 정의 마스터 페이지에서 스크립트 링크 컨트롤로 배포 할 수있는 것처럼 쉽게 배포 할 수 있습니다. 사이트 모음의 경우 내 질문이 여전히 적용됩니다) :
.<CustomAction Id="script1" Location="ScriptLink" ScriptSrc="/Style%20Library/mySolution/custom1.js" /> <CustomAction Id="script2" Location="ScriptLink" ScriptSrc="/_layouts/mySolution/custom2.js" />
은 메인 '루트'사이트 컬렉션에서 기능이 활성화되는 한 위의 작업이 모두 잘 작동합니다. 그러나 I 단지 보조 특별한 '특수'사이트 모음 (새 격리 경계, 중첩 된 URL 경로)에만 기능을 배포 한 경우 Script1 참조가 중단되지 않습니까?
브라우저는 다음 경로에서 custom1.js를 찾고 있습니다.
스타일 라이브러리 / mysolution / custom1.js
실제로 파일이 에있을 때
/ 사이트 / 특별 / 스타일 라이브러리 / mysolution / custom1.js
두 번째 스크립트 링크는 _layouts가 전역이므로 항상 브라우저가 항상 기능이 배포 된 사이트 모음을 상관없이 항상 /_layouts/mysolution/custom2.js를 찾습니다.
수정? 나는 정신 검사를하고 있다고 생각합니다.
스크립트에 쉽게 액세스 할 수 있습니다 / 스타일 라이브러리에서 광고를 편집 할 수있는 스크립트에 쉽게 액세스 할 수 있지만, 그러한 기능 (위의 설계된대로 설계)이 루트 레벨 사이트 컬렉션에서만 작동하는 아이디어를 싫어합니다. .
해결책
첫 번째 링크는 사용자가보고있는 것을 정확히 주소하기위한 것이므로 특정 컨트롤이 값을 확장하지 않도록하십시오.
<CustomAction Id="script1" Location="ScriptLink" ScriptSrc="~SiteCollection/Style%20Library/mySolution/custom1.js" />
.
_layouts 또는 style library에 있어야하는지 여부는 2006 년 SP2007 베타가 2006 년 SP2007 베타 이후로 분명한 승자가 없었습니다.일반적으로 파일이 사이트 소유자가 수정할 수있는 것이면 "스타일 라이브러리"로 이동해야합니다. 파일이 관리자 만 수정할 수 있어야합니다.나는 두 위치간에 적어도 12 가지 차이가 있으므로 단순화합니다.
이것은 모든 것이 적용되는 공식적인 SharePoint 답변이 "그것은 의존합니다"
다른 팁
이 질문 도