2012-11-06 2 views
3

* .hhc 파일 또는 도움말 페이지 .htm의 html 코드에서 상위 디렉터리에 대한 상대 경로는 컴파일 된 .chm 도움말 파일에서 작동하지 않습니다.HTML 도움말 제작의 상위 디렉터리에있는 파일의 상대 경로

이 예제에서 file1.htm은 * .hcc 파일과 동일한 디렉터리에 있지만 반면에 file2.htm은 상위 디렉터리를 통해 액세스해야하는 다른 디렉터리에 있습니다. 도움말 제작 IDE는 다음 만듭니다 * .hhc :

파일 (1)의 내용은 이런 식으로 뭔가 시작

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 
<HTML> 
<HEAD> 
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1"> 
<!-- Sitemap 1.0 --> 
</HEAD><BODY> 
<OBJECT type="text/site properties"> 
    <param name="ImageType" value="Folder"> 
</OBJECT> 
<UL> 
    <LI> <OBJECT type="text/sitemap"> 
     <param name="Name" value="Introduction"> 
     <param name="Local" value="file1.htm"> 
     </OBJECT> 
    <LI> <OBJECT type="text/sitemap"> 
     <param name="Name" value="Topic"> 
     <param name="Local" value="..\common\file2.htm"> 
     </OBJECT> 
</UL> 
</BODY></HTML> 
: 컴파일 된 *이 .chm 스타일 시트 파일에

<html> 
    <head> 
     <title>Documentation</title> 
     <meta name="GENERATOR" content="Microsoft FrontPage 4.0" /> 
     <link rel="stylesheet" type="text/css" href="..\common\webformat.css" /> 
     <script language="JavaScript" type="text/javascript" src="..\common\WindowControl.java"> 
     </script> 
    </head> 

    <body> 

    <table cols=2> 
    <tr> 
     <td align="left" valign="bottom"><h2>Overview</h2></td> 
     <td align="right"><img src="..\common\images\klein.gif" alt="Logo"></td> 
    </tr> 
    </table> 

이 적용되지 않으며, 자바 스크립트 작동하지 않고 이미지가 표시되지 않습니다. 내용 테이블의 file2에도 액세스 할 수 없습니다.

* .chm 파일을 7zip으로 압축하면 컴파일러가 모든 파일을 같은 수준에 배치했지만 * .htm 파일 및 * .hhc 파일의 상대 경로는 변경되지 않은 채로 남아 있음을 알 수 있습니다. 도움말 프로젝트

도움말 폴더 계층 구조 : 그들은 액세스 할 수없는 이유입니다

Help 
    |-file1.htm 
    |-file2.htm 
    |-webformat.css 
    |-WindowControl.java 
    |-klein.gif 

모든 상대에 대체 경로를 지정 :

Help 
    |-common 
    | |-file2.htm 
    | |-webformat.css 
    | |-WindowControl.java 
    | |-images 
    |  |-klein.gif 
    |-private 
     |-file1.htm 

그리고 압축 해제 * .chm 파일 계층 구조에서

javascript에 의한 경로는 매우 부정한 해결책입니다. 또한 * .hhc 파일의 링크 문제를 해결하지 못합니다.

아이디어가 있으십니까?

+0

문제가 해결 될 수있다 (I 무료 파스칼에서 "chmls"명령을 사용하지만, IIRC * nix에서 스크립트 CHM 뷰어의 일부는 경로를 표시 CHMs의 내부 구조를 보려면 PS) * .hcc 파일의 상위 디렉토리에. 이렇게하려면 * .hcc가 도움말 프로젝트 계층의 최상위 레벨에 있어야합니다. 이렇게하면 * .htm 파일의 상위 디렉토리에 대한 상대 경로가 완벽하게 작동합니다. – Jansk83

답변

0

경로는 디렉토리의 루트와 관련이 있어야하며 URL은 앞으로 슬래시를 사용해야합니다.

구성 파일의 모든 경로는 문서 루트에 상대적이어야합니다. 따라서 HELP 디렉토리가 CHM에 표시되면 도움말의 부모는 documentroot이고 CHM 프로젝트의 프로젝트 파일은 help/common/xxx.gif와 같습니다.

html 파일의 Afaik는 URL이 상대적 일 수 있으며 잘못된 슬래시가있을 수 있습니다.

어떤 경로가없는 경우

+0

* .chm에는. \ Help 디렉터리가 없습니다. 모든 파일은 Help.chm의 최상위에 있습니다. 즉, Help.chm 파일은. \ private 대신 file1.htm의 루트 디렉터리이며,. \ common 디렉터리도 Help.chm 디렉터리에 없습니다. 그런 다음 file1.htm의 ".. \"은 * .chm 디렉토리를 참조하므로 공용 폴더를 찾을 수 없습니다. – Jansk83

+0

계층 1 : * .hhc 파일이. \ private 아래에있는 경우에만 문제가 발생합니다. * .hhc 파일이. \ Help 아래에 있으면 더 이상 * .hhc 파일에 상위 디렉토리 링크가 필요하지 않습니다. 이 경우 * .htm의 상위 디렉토리에 대한 링크가 제대로 작동합니다. – Jansk83