개찰구 응용 프로그램에서 전 세계적으로 액세스 가능한 리소스

StackOverflow https://stackoverflow.com/questions/1632478

  •  06-07-2019
  •  | 
  •  

문제

현재 헤더 (패널), 바닥 글 (패널) 및 상속 페이지 컨텐츠 센터에있는 기본으로 구성된 응용 프로그램이 있습니다. 내가 제기하고있는 문제는 ResourceReferences입니다 (아마도 이것은 올바른 방법이 아닐 수도 있습니다). 다음을 수행 할 수있는 솔루션을 찾고 있습니다.

  1. 전 세계적으로 사용 된 이미지, JS, CSS 용 단일 디렉토리가 있습니다.
  2. 상속 된 페이지 나 형제 페이지에서 나중에 만들 수있는 기본 페이지에서 액세스 할 수 있도록 해당 리소스를 등록하십시오 (또는 제외)
  3. CSS 및 JS 내에서 해당 리소스에 액세스 할 수 있도록하십시오 (예 : 이미지에 대한 URL)

지금까지 구성 요소 또는 응용 프로그램 수준 범위에 대한 리소스를 패키지하는 방법을 보여주는 몇 가지 예를 읽었지만 도움을 원하는 3 가지 문제를 모두 다루는 것 같습니다. 참조를 위해 전 세계적으로 사용 된 이미지 (아이콘, 로고 등)를 각 구성 요소 패키지에 복사 할 필요가 없으며, 이러한 바인딩이 전 세계적으로 한 곳에서 쉽게 참조하고 참조 할 수 있도록하기 위해 좋을 것입니다. 업데이트.

도움이 되었습니까?

해결책

이는 개찰구 1.4 이후 크게 바뀌 었습니다. 참조하십시오 '리소스를 사용하여 JavaScript 또는 CSS 추가'Wicket 's Wiki에서

전 세계적으로 액세스 할 수있는 이미지 및 기타 리소스 (특히 CSS 및 JS 파일)를 만들려면 응용 프로그램의 init () 메소드에 마운트하십시오.

mountSharedResource("/images/submit.jpg", new ResourceReference(MyComponent.class, "foo.jpg").getSharedResourceKey());

거기 있습니다 자원을 복제 할 필요가 없습니다 어떠한 방식으로. 리소스가 구성 요소 자체와 동일한 패키지에있을 필요는 없습니다. 응용 프로그램에서 우리는 전 세계적으로 사용 된 리소스를 전용 패키지 (com.example.myapp.images)에 넣고 JS 및 CSS에 대해 동일하게 단일 클래스 (예 : imagesscope.java)를 넣습니다.

이미지의 경우 필요하지 않습니다 ResourceReference 코드에서 렌더링 된 참조가 필요하지 않으므로 (org.apache.wicket.markup.html.image.image 제외). JS 및 CSS 사용

add(CSSPackageResource.getHeaderContribution(PanelOne.class, "PanelOne.css"));

그건 그렇고, 나는 a의 저자입니다 Wicketstuff-Merged Resources라는 작은 라이브러리 github에서 사용할 수 있습니다. 이 라이브러리를 사용하면 응용 프로그램의 init ()에서 수동 장착을 건너 뛰고 대신 주석을 사용할 수 있습니다.

편집 : 업데이트 된 링크. 불행히도, 개찰구 위키의 문서는 지금 사라진 것 같습니다. 거기 있습니다 블로그의 일부 기사 그렇지만.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top