html - HTML Help Workshop 中父目录中文件的相对路径

标签 html chm

在 *.hhc 文件或帮助页面 .htm 的 html 代码中到父目录的相对路径在已编译的 .chm 帮助文件中不起作用。

在此示例中,file1.htm 与*.hcc 文件位于同一目录中,而file2.htm 位于需要通过父目录访问的其他目录中。 HELP Workshop IDE 创建以下 *.hhc:

<!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>

文件 1 的内容以这样的开头:

<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>

在已编译的 *.chm 文件中,未应用样式表,javascript 不工作且不显示图像。目录中的文件 2 也不可访问。

用7zip解压*.chm文件可以看出,编译器将所有文件放在了同一层,但保留了*.htm文件和*.hhc文件的相对路径不变。这就是它们不可访问的原因:

帮助项目中的帮助文件夹层次结构:

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

在解压后的 *.chm 文件层次结构中:

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

通过 javascript 为所有相对路径指定替代路径是一个非常不干净的解决方案。而且,也没有解决*.hhc文件中链接的问题。

有什么想法吗?

最佳答案

路径应该相对于目录的根目录,URL 使用 FORWARD 斜杠。

配置文件中的所有路径都应该相对于文档根目录。所以如果在CHM中可以看到HELP目录,那么help的父目录就是documentroot,CHM工程的工程文件如help/common/xxx.gif。

Afaik 在 html 文件中,url 可以是相对的,也许它偶然发现了错误的斜杠。

(附注:为了查看 CHM 的内部结构,我使用 Free Pascal 中的“chmls”命令,但 iirc 一些 *nix CHM 查看器也显示路径)

关于html - HTML Help Workshop 中父目录中文件的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13247937/

相关文章:

css - 使用 HTML5 <datalist> 时是否可以设置下拉建议的样式?

html - 框宽度 100% 的 CSS3 问题

windows-10 - 如何将HLP文件转换为CHM文件

html - 如何在浏览器中查看chm文件?

Delphi HtmlHelpAPI-如何指导 CHM 文件打开到不同的部分

html - 将文本放在 Bootstrap 输入旁边不起作用

mysql - HTML : from select list need to add value to mysql

java - 调用 servlet 后导航栏 css 发生变化

html - 如何使用 SandcaSTLe 构建 HTML 文档

c# - 有什么方法可以在 SHFB 中导入外部项目或主题文件?