エッジケースのサブフォルダ設定におけるFAQリンクの問題

まず、これは /f サブフォルダに特化した、私の環境に 非常に 固有のエッジケースです。

ハンバーガーメニューの Discourse リンクは、/faq/f で始まる ため、サブフォルダを含まない /faq を指しています。

以下の引用を考慮してください:

おそらく、以下のように変更できるでしょう。

  const found = url.startsWith(baseUri);

  const found = url === baseUri || url.startsWith(`${baseUri}/`);

のように変更します。これにより、/f/f//f/faq には一致しますが、/faq には一致せず、後者に対して正しく baseUri が先頭に付加されます。

とにかく、ルート自体も機能していません。/f/faq は 404 エラーを返します。したがって、ルーターレベルでも同様のロジックが存在していると思われます。以前、/f/following も機能していなかったことに気づきました(cc @merefield)。

最後に、回避策として faq url サイト設定を /f/guidelines に変更しました。これによりリンクと 404 エラーは解消されましたが、ナビゲーションバーに「Guidelines」と「FAQ」の両方の用語が表示され、どちらも faq url に設定されているページへリンクするという、少し奇妙な現象が発生しました(実際のページ で確認できます):

3 つの課題をまとめたような「何でもあり」のトピックで申し訳ありませんが、これらは密接に関連しているため、適切に分離するのは難しいと思います。

ありがとうございます。

「いいね!」 2

get-url 問題に対応する PR を送信しました:

/f/faq および /f/favicon/proxied での 404 エラーについてですが、コンテナ内で Nginx をバイパスしてこれらのルートに CURL を実行すると正常に動作します。Serve Discourse from a subfolder (path prefix) instead of a subdomain で説明されている location ディレクティブを location /subfolder から location /subfolder/ に変更することで、この問題を解決できました。

ナビゲーションバーに「Guidelines」と「FAQ」の両方が表示されるのは 予期される動作 です。ユーザーが同じ URL で faq url を上書きすることはまずあり得ません。

「いいね!」 5

これでクローズして問題ありませんか? :slight_smile: NGINX の問題は修正され、より詳細なドキュメントも追加されましたか?

「いいね!」 1

はい、問題ありません。ハウツートピックの変更を提案しました。

ありがとうございます。

「いいね!」 1

ああ、それはウィキですよ、自由に編集してください!:heart:

「いいね!」 1