Так что, похоже, вы движетесь в правильном направлении.
Попробуйте следующее:
- В своем индексе. html добавьте сценарий в заголовок страницы / вверху страницы. Вы хотите, чтобы сценарий был загружен 1-м.
- Итак, когда пользователь переходит к index. html, сценарий проверяет, существует ли локальное хранилище.getItem ("displayName").
- Если это так, перенаправить на каналы. html
После того, как вы попробовали это и внесли соответствующие изменения в свой код, и если это не сработало, отредактируйте исходное сообщение, используя то, что вы сейчас пробовали, а также трассировку стека любых ошибок. Я более чем счастлив взглянуть на него еще раз и переработать свой ответ.
Обновления
Итак, я считаю, что причина, по которой он не работает на вашей стороне в настоящее время, связана с тем, что в вашей функции каналов вам необходимо иметь возвращаемое значение для вашего второго шаблона рендеринга, например:
@app.route("/channels", methods=['GET', 'POST'])
def channels():
if request.method == "POST":
name = request.form.get("display_name")
return render_template("channels.html", name=name)
return render_template("channels.html") # This line has been modified
Еще одно изменение, которое вам нужно внести в свой код, чтобы изменения вступили в силу, - это ваш index. js файл. Просто добавьте эту функцию.
//This function needs to be added to index.js
window.onload = function(){
if(localStorage.getItem("displayname")){
window.location.replace("/channels");
}
Я реализовал вышеупомянутые изменения со своей стороны, и, похоже, все работает, как ожидалось, пожалуйста, позвольте мне, если это сработает для вас. Кроме того, с другой стороны, лучший способ проверить это, работает ли он, - использовать режим инкогнито.