Если я пытаюсь перейти к удалённой теме (например, кликнув по уведомлению) в приложении DiscourseHub, я, разумеется, получаю страницу с ошибкой 404. На страницах 404 некоторые функции отключены. Например, я не могу понять, что я авторизован. Вероятно, это сделано для снижения нагрузки на сервер. Логично.
Но проблема в том, что я также не вижу элементы управления в нижней части страницы. Почему я не должен иметь возможность перейти вперёд или назад, либо переключиться на другой экземпляр Discourse только потому, что нахожусь на странице 404?
Очень странно. Я пробовал это дважды перед тем, как сообщить об этом. На Meta. Единственный способ, которым я мог заставить их отобразиться, был таким, как вы предложили — кликнув по другой ссылке.
Редактирование: Постойте минутку. Страница 404 работает по-другому для администратора? Потому что я даже не мог понять, что я вошел в систему, пока не перешел со страницы 404, тогда как в вашем скриншоте видно ваше фото профиля.
Это может произойти, когда содержимое страницы имеет высоту, близкую к высоте области просмотра. Если вы проведете пальцем вверх или вниз на странице 404, начнут ли появляться элементы управления внизу?
Не уверен, что мы можем здесь что-то сделать, тем более что это должен быть крайне редкий случай (например, переход на страницу 404 из push-уведомления).
Нет, они не отображаются. Я знаю, как это работает.
Для меня не так уж редко бывает, что я перехожу по ссылкам на удалённые темы. Это случалось со мной достаточно часто, чтобы я понял, когда это происходит, что именно происходит и как выйти из этого состояния. (Обычно я выхожу из него, принудительно закрывая приложение — это был первый способ, который я нашёл.) Но да, это пограничный случай.
Я не знаю, где генерируются эти элементы управления. Я предположил, что это происходит в приложении, а не в самом Discourse. Если так, то мне кажется странным, что приложение внезапно перестаёт показывать необходимые элементы навигации в зависимости от того, на какой странице вы находитесь. Решать вам, стоит ли это исправлять или нет. Я просто знаю, что когда это случается, мне всегда требуется некоторое время, чтобы понять, что происходит. (Прокручиваешь вверх и вниз, ждёшь появления элементов управления, но они так и не появляются. Раньше я просто принудительно закрывал приложение, думая, что оно не работает.) Теперь, когда я наконец понял, что вызывает эту проблему, я решил сообщить о ней.
Они генерируются в Discourse, а не в приложении. Когда мы внедряли эту функцию, мы пробовали оба подхода, и размещение их в Discourse оказалось гораздо более плавным решением.
Я никогда не сталкивался с этим экраном, но разные пользователи используют Discourse по-разному, поэтому понимаю, что для других это может быть частой проблемой (и вызывать раздражение). Как вы и предполагаете, я думаю, что вам отображается быстрая статическая страница для ошибки 404. И я почти уверен, что нижние элементы управления приложением не включаются в статические страницы, поэтому прокрутка вверх/вниз ничего не делает. Я изучу вопрос и посмотрю, можно ли легко исправить это, добавив элементы управления в статические страницы (честно говоря, я подозреваю, что это не так просто).
Кстати, я только что проверил страницу часто задаваемых вопросов (FAQ), которую, как я предполагал, должна быть «статичной страницей», но элементы управления всё ещё на месте.
Нет, раздел «Часто задаваемые вопросы» (FAQ) по-прежнему является частью приложения Ember. Под «статической страницей» выше я имел в виду страницы, которые вообще не загружают приложение Ember. Таких страниц не так много.
Я провёл несколько быстрых тестов и обнаружил, что попасть на страницу 404, не использующую Ember, можно только в том случае, если вручную ввести неверный URL в браузере. Если же кликнуть по ссылке внутри Discourse, ведущей на страницу 404, то отрисованная страница будет сгенерирована Ember, и поэтому в DiscourseHub внизу будут отображаться элементы навигации. Я проверил это, отправив себе личное сообщение со ссылкой на несуществующий URL.
Добавить элементы управления на страницу 404, не использующую Ember, непросто: этот код зависит от Ember и определения устройства, поэтому мы не можем просто скопировать его туда.
Когда вы получаете эту ошибку 404, можете ли вы кликнуть по логотипу? Это должно перенаправить вас на сторону приложения Ember, и дальше всё будет работать корректно…