1

編集:ウェイランの答えはうまくいきました!ありがとう!

ドキュメントの .html ファイルを圧縮して顧客に送信しようとしています。目標は、実際の Web サイトをナビゲートするのと同じ体験をすることです。

ここに画像の説明を入力

.html ファイルを開くと、クリックされたリンクは、特定の .html ではなく、親フォルダーに移動します。たとえば、構成ページへのリンクをクリックすると、実際のページへの index.html を含むこの親フォルダー (画像に表示) に移動します。これは、(MkDocs を使用して) ビルドされた .md をナビゲートしているときではなく、.html ファイルを処理しているときにローカル インスタンスでのみ発生します。

  • macOS カタリナ、10.15.3
  • MkDocs
  • マークダウン
4

1 に答える 1

4

おそらく、構成ファイルに設定use_directory_urls: falseする必要がありmkdocs.ymlます。

表示されている動作は、Web サーバーの機能に基づいています。ディレクトリ (たとえば/foo/) を要求すると、サーバーはそのディレクトリ ( ) 内のインデックス ページを返します/foo/index.html。MkDocs はこの機能を利用して「プリティ URL」(ファイル拡張子のない URL) を提供します。

したがって、サイトを構築するとき、MkDocs はすべてのページをディレクトリ内のインデックス ファイルに変換し、それらの場所を指すようにすべての内部リンクを書き換えます。インデックス ページを提供するように構成されたサーバーでページがホストされている限り (ほとんどは既定で)、これは問題ではありません。

ただし、Web サーバーを使用せずにファイルをローカルで参照している場合、またはインデックス ファイルを処理するように構成されていないサーバーを使用している場合は、実際の動作が表示されます。次の 2 つのオプションがあります。

  1. 適切に構成されたサーバーを使用してください。
  2. MkDoc のuse_directory_urls構成設定で機能をオフにします。

mkdocs.yml後者を行うには、構成ファイルに次を追加します。

use_directory_urls: false

次に、でサイトを再構築しますmkdocs build。これで、すべてのページがインデックス ファイルになるわけではありません。

これにより、サーバーなしで ( を使用してfile:///) ファイルを参照できますが、ブラウザーのセキュリティ ポリシーにより、MkDocs サイト内では検索が機能しなくなることに注意してください。したがって、常にサーバーを使用することをお勧めします。これは、デフォルト構成がサーバーを必要とする理由も説明しています。

于 2020-02-22T22:09:05.213 に答える