2016-12-27 4 views
4

슬링은 리소스를 쉽게 해결할 수있는 기능을 제공합니다. 우리가 필요로하는 정확한 자원 표현으로 해결할 수있는 능력은 콘텐츠 기반 응용 프로그램에서 매우 유용합니다.슬링 URL에 접미사를 사용하는 이유

그러나 하나의 질문은 접미사를 사용하는 것이 이해할 수 없습니다.

예 :

여기
http://localhost:4502/content/app/mycomponent.large.html/something.html 

는 "something.html"은 접미사이다. 어떤 상황에서 접미어를 사용할지 알고 싶습니다. 정보를 선택자로 전달할 때와 비교할 때 어떤 이점이 있습니까?

답변

6

꽤 어려운 질문이지만, 조금 정리하려고합니다.

모범 사례에 따르면 선택기를 함수의 입력 매개 변수로 취급해서는 안됩니다. 즉, 서블릿 (또는 JSP 파일 이름)을 등록 할 때만 선택기를 사용해야하며 선택기는 지정된 리소스 또는 표시 방법과 관련하여 원하는 작업에 대해 슬링에 알려야합니다.

예를 들어 페이지/페이지/a.html이 있고 모바일 장치에 대한 특별한 표현이 있다고 가정 해 봅시다. 그런 다음 /page/a.mobile.html을 사용하여 액세스하면이 페이지가 모바일 친화적 인 방식으로 열립니다.

반면에 서블릿/JSP 페이지에 추가 정보를 제공하기 위해 일반적으로 사용되는 접미사. 그냥 TouchUI에서 편집기 인터페이스를 확인 : URL이 보이는

같은

로컬 호스트 : 4502/editor.html/컨텐츠/pageYouEdit.html

그래서 당신은 항상 같은 페이지 /editor.html에 남아 있지만, 접미사 편집 인터페이스를 통지 편집 할 페이지

또 다른 예 : 콘텐츠를 동적으로 포함하기위한 훌륭한 라이브러리가 있습니다 (https://github.com/Cognifide/Sling-Dynamic-Include). 그것은 몇 가지 구성 요소에 대한 구성 때 , 다음 페이지가로드 된 후, 구성 요소는 다음과 같이 AJAX 호출에 포함됩니다

게시/pathToThePage/_jcr_content/pathToTheComponentNode.nocache.html // 응용 프로그램/pathToTheRenderer

이 예에서는 selector와 suffix가 모두 사용되었음을 알 수 있습니다. Selector는 우리가 필요로하는이 구성 요소의 표현에 특별한 것이 무엇인지 알려주고 접미사는 요청 된 데이터를 렌더링해야하는 구성 요소를 알려줍니다.

2

캐시 가능한 다른 버전의 리소스를 제공하는 데 사용됩니다. 이것은 Adobe 건축가가 AEM 구현에서 추천하는 "Dispatcher"라고하는 Apache HTTP 모듈과 잘 맞습니다.

http://me.com/page.html/todays_promotion <-- cacheable 

http://me.com/page.html?todays_promotion <-- not cacheable 

두 번째 예제는 요청 매개 변수와 함께 각 요청에 따라 다른 결과를 생성 할 수있는 가변 리소스로 처리해야합니다.