2011-02-06 3 views
1

나는 BasePage.java (BasePage.html과 함께)입니다. 기본 페이지는 기본적으로 mycssmenu.com에 의해 만들어진 CSS 메뉴입니다 (CSS가 좋지 않습니다). 나는 기본 페이지 내 대학의 로고를 추가 할 : 한마디로Wicket이이 로고를 렌더링하지 않는 이유는 무엇입니까?

 <ul> 
      <li><a href="MainPage.html"wicket:id="home">Home</a></li> 
      <li><a href="LecturerPage.html"wicket:id="lect">Lecturer Page</a></li> 
      <li><a href="StudentPage.html"wicket:id="stud">Student Page</a></li> 
     </ul> 
    </li> 
    <li><span class="qmdivider qmdividery" ></span></li> 
    <li><a class="qmparent" href="javascript:void(0)">About</a> 
     <ul> 
      <li><a href="About.html"wicket:id="about">About</a></li> 
     </ul> 
    </li> 
    <li class="qmclear">&nbsp;</li> 
</ul> 
<script type="text/javascript">qm_create(0,false,0,500,false,false,false,false,false</script> 
</div> 
<div id= "body"> 
    <img src="C:\Users\Eliezer Shindler\Desktop\cityunilogo.jpg"alt="City Logo"/> 
    <wicket:child /> 

이,시 로고가 나는 웹 브라우저에서 페이지를 열 때 표시되지만 개찰구를 실행하지 않을 때는됩니다. 왜, 어떻게 Wicket과 작동하게 할 수 있습니까? 나는 개찰구를 아주 신작이야.

답변

5

다음과 같은 로컬 드라이브 경로 (C:\...)를 참조하고 있습니다. a) 컴퓨터 외부에서 작동하지 않습니다. b) 브라우저가 작동하더라도 보안 제한 (원본 페이지가 디스크에서도로드 된 경우에만 로컬 파일을 열 것임)으로 인해 표시되지 않습니다.

웹 응용 프로그램에서 로컬 컴퓨터 경로를 사용하십시오. 그러지 마세요, 그것은 악하며, 당신의 자손은 7 대에 걸쳐 저주받을 것입니다.

웹 응용 프로그램에 이미지를 표시하려면 응용 프로그램 컨텍스트 내부 나 폴더 경로로 이미지를 이동하고 페이지 경로를 지정하십시오.

가정 프로젝트 레이아웃은 다음과 같이이다 : 그것으로

myapp/ 
    src/ 
     myapp/ 
      MyApplication.java 
      MyPage.java 
      MyPage.html 
    web/ 
     WEB-INF/ 
      web.xml 

당신은 (말하자면 logo.png를) 이미지를 myapp/web/images 폴더를 만들고 복사 할 수 있습니다 :

myapp/ 
    src/ 
     myapp/ 
      MyApplication.java 
      MyPage.java 
      MyPage.html 
    web/ 
     images/ 
      logo.png 
     WEB-INF/ 
      web.xml 

MyPage.html에서, 마크 업 다음과 같이됩니다.

<img src="images/logo.png"> 

또 다른 방법은 당신의 .java 파일 이미지/자원을 나란히 유지, 자바 코드에서 이미지를 추가하는 것입니다

myapp/ 
    src/ 
     myapp/ 
      images/ 
       logo.png 
      MyApplication.java 
      MyPage.java 
      MyPage.html 
    web/ 
     WEB-INF/ 
      web.xml 

그런 MyPage.html의 선언이 될 것

<img wicket:id="logo"> 

그리고 MyPage.java

add(new Image("logo", new PackageResourceReference(HomePage.class, "images/logo.png"))); 

logo.png 파일이 '이미지'폴더에에, 상대적 것을 의미 포함됩니다 HomePage 클래스 '패키지

CSS와 javascript 파일에도 비슷한 접근 방식 (Image 대신 헤더 기여 사용)을 사용할 수 있습니다.

이것은 훨씬 더 장황하지만 특히 재사용 가능한 구성 요소를 라이브러리로 모듈화하면 모든 리소스 (이미지, CSS 및 JavaScript 파일 등)를 하나의 병으로 묶을 수 있으므로 매우 유용합니다.

+0

@tetsou - 감사합니다. 첫 번째 방법은 이미지 폴더 생성 ('컨텍스트')과 거기에 jpg 넣기에 대한 내 대답을 참조하십시오. –

+1

+1하지만 'cursed'가 아니라 'coursed'입니다. ':-) –

+0

@ sean-patrick-floyd 이런, 고마워! – tetsuo

관련 문제