У меня есть несколько панелей, определенных для моего приложения:
(defmulti panels identity)
(defmethod panels :panel1 [] [panel1])
(defmethod panels :panel2 [] [panel2])
(defmethod panels :panel3 [] [panel3])
Я могу использовать bidi + pushy на стороне клиента, чтобы протолкнуть маршрут, скажем, / panel1-uri, когда происходит событие (в данном случае щелкните), и изменить панель с помощью отправки. Но когда я обращаюсь к localhost: 5000 / panel1-uri напрямую через браузер, это не работает, поскольку на сервере не существует маршрута / panel1-uri.
Поэтому я создаю маршрут в моем server / panel1-uri, который просто обслуживает index.html, и добавляю ключ панели, которую я хочу показать, в заголовке ответа этого маршрута. Затем я создаю привязку href к localhost: 5000 / panel1-uri, а не отправляю событие (на push / panel1-uri), но, конечно, это все еще служит панелью по умолчанию. Однако ответ, который я получил при нажатии href, действительно содержит правильный ключ панели в своем заголовке. Как я могу получить доступ к этому заголовку, который я получил из ответа после нажатия href, и использовать его для изменения панели?
В качестве альтернативы, есть ли лучший способ подойти к проблеме обслуживания URI, которые работают не только с событиями на стороне клиента, но и при вводе непосредственно в браузер?