Я включил pushState на своих маршрутизаторах aurelia и установил root.
config.options.pushState = true;
config.options.root = '/vNext';
Я установил базовый href в своей голове:
<head>
<base href="/vNext/" />
На моей странице я вставляю дочерний маршрутизатор, который содержит редирект с "" на список
app.ts:
config.map([
{ route: '', redirect: 'child-router-1' }, ...
дочерний маршрутизатор-1.ts:
config.map([
{ route: '', redirect: 'list' }, ...
Что работает
- Перезагрузка работает, при изменении файла все окна браузера корректно перезагружаются с изменением.
- Синхронизация с браузером: синхронизация кликов по элементам, не связанным со ссылками (например, сворачивающееся меню), работает, я могу щелкнуть в одном окне, и это повлияет на все окна, синхронизированные с браузером.
Что не работает
- Синхронизация браузера: синхронизация навигации после нажатия ссылки (эта проблема возникает у всех маршрутов верхнего или дочернего уровня). Здесь только щелкнутое окно переходит к ссылке. Но все другие окна, подключенные к браузеру, либо остаются на текущей странице, либо ошибочно переходят к URL-адресу дочернего маршрутизатора вместо связанного маршрута.
например в списке /vNext/child-router1/ нажатие ссылки на /vNext/child-router1/5000/detail не будет иметь никакого эффекта в подключенных браузерах, даже если Фрагменты socket.io показывают щелчок.