Проблема со ссылкой на FAQ при настройке подпапки в крайнем случае

Во-первых, это пограничный случай, очень специфичный для моей настройки с подпапкой /f.

Ссылка в меню «гамбургер» в Discourse указывает на /faq без подпапки, потому что /faq начинается с /f.

Учитывая эту цитату:

Я предполагаю, что мы могли бы изменить

  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, но привело к небольшой странности: в навигационной панели появились и «Руководство», и «Часто задаваемые вопросы», обе ссылки ведут на то, что указано в faq url (вы можете проверить это на реальной странице):

Извините за эту тему со всем подряд, где затронуты три проблемы, но, думаю, они настолько связаны, что их сложно корректно разделить.

Спасибо.

2 лайка

Я отправил PR для решения проблемы с get-url:

Что касается ошибки 404 на /f/faq и /f/favicon/proxied, то при выполнении CURL-запросов к этим маршрутам внутри контейнера в обход Nginx всё работает. Мне удалось исправить это, изменив директиву location, описанную в Serve Discourse from a subfolder (path prefix) instead of a subdomain, с location /subfolder на location /subfolder/.

Отображение в навигационной панели одновременно разделов «Правила» и «FAQ» является ожидаемым поведением; маловероятно, что пользователь изменит faq url на тот же самый URL.

5 лайков

Это значит, что мы можем закрывать? :slight_smile: Проблема с NGINX исправлена и есть дополнительная документация?

1 лайк

Да, всё в порядке. Я предложил изменение в теме с инструкцией.

Спасибо.

1 лайк

О, это вики, не стесняйтесь редактировать её! :heart:

1 лайк