Несколько лишних или неправильно расположенных / могут привести к загрузке пустой страницы

https://try.discourse.org/ работает, а https://try.discourse.org// зависает, отображая пустую страницу в Safari и Chrome.

То же самое происходит с meta.discourse.org: если добавить / после имени домена, например

https://meta.discourse.org//top/weekly, страница зависает.

1 лайк

Именно лишний слэш в конце URL-адреса мешает загрузке страниц. При использовании одного слэша всё работает как положено. Почему вы, кажется, настаиваете на добавлении дополнительного слэша в конце URL?

Если я добавлю двойной слэш в конец адреса моего форума, происходит то же самое — пустая страница, как и следовало ожидать.

1 лайк

Я знаю причину проблемы. Если доменное имя форума ввести в адресную строку браузера, и оно автоматически дополнится до одной косой черты, но пользователь добавит в конце ещё одну, то любой форум на Discourse будет показывать пустую страницу. Это нежелательное поведение, оно воспроизводится и наблюдается последовательно для всех URI.

Дополнительная проблема заключается в том, что функция автодополнения браузера может затем добавить двойную косую черту, поскольку формат пустой страницы не вызывает ошибку. Таким образом, пока браузер не очистит свою историю автодополнения, пользователи будут постоянно попадать на пустые страницы форумов.

1 лайк

Если вы введете https://apnews.com//, вас перенаправит на сайт Ассошиэйтед Пресс, и вы получите ошибку 404 — страница не найдена. Контент не загружается. Единственное отличие, которое я вижу, заключается в том, что AP возвращает ошибку 404, а сайты на Discourse показывают только пустую страницу (без ошибки 404).

Автозаполнение по-прежнему добавляет только одну косую черту в конце при вводе.

Возможно, «баг» заключается в том, что ошибка 404 не отображается при использовании двойной косой черты?

3 лайка

Из-за этой «ошибки» программное обеспечение форума продолжает загружать множество мегабайт информации, согласно консолям Safari и Chrome, просто не отображая её.

1 лайк

Когда URL-редиректы и/или маршрутизация ожидают одну косую черту, наличие двойной косой черты «ломает» ожидаемое поведение. На статической странице всё может загрузиться корректно (вероятно, так и будет). Но на динамической странице именно там возникают проблемы. Даже некоторые CGI-приложения, которые напрямую анализируют URL, могут не сработать. Некоторые серверы могут воспринимать множественные косые черты как форму атаки, особенно если двойные косые черты находятся в середине URL.

Возможно, кто-то из команды Discourse сможет дать более подробное объяснение того, как Discourse реагирует на множественные косые черты. Но было бы лучше, если бы в таких случаях возвращалась ошибка 404.

2 лайка

Это не баг, я поддерживаю идею улучшить страницу 404 здесь, сделать редирект или что-то ещё.

Возможно, в нашем роутере Ember есть тривиальное изменение, я не знаю, передаю слово экспертам по Ember.

4 лайка

Скорее всего, в Ember это уже давно исправлено, и проблема, вероятно, связана с нашим кастомным кодом для работы с локациями или чем-то подобным.

Разберусь с этим сегодня.

6 лайков

Это должно исправить проблему:

6 лайков

extra / покажет вам фон форума, teshghost.tk// (вы можете увидеть мои обои для фона)

1 лайк

Эта тема была автоматически закрыта через 5 дней после последнего ответа. Новые ответы больше не принимаются.