GOOGLE ADS

вторник, 12 апреля 2022 г.

Использование stencil-router на gh-страницах

Я пытаюсь развернуть SPA-трафарет на gh-страницах, но не могу заставить маршрутизатор сотрудничать. Я устанавливаю root, stencil-routerно он не загружает ни один из моих маршрутов. Он отлично работает, когда я запускаю localhost.

https://positlabs.github.io/lightpaintlive-www/

Обратите внимание, что gh-pages использует имя репо в качестве пути, поэтому при развертывании оно не находится в корневом каталоге хоста.

import { Host, Component, h, State } from '@stencil/core';
@Component({
tag: 'app-root',
styleUrl: 'app-root.css',
shadow: false,
})
export class AppRoot {
@State() base: string
componentWillLoad(){
this.base = document.querySelector('base').getAttribute('href')
console.log('router root', this.base)
}
render() {
return (
<Host>
<stencil-router root={this.base}>
<stencil-route-switch scrollTopOffset={0}>
<stencil-route url="/" component="lpl-landing" exact={true} />
<stencil-route url="/privacy" component="lpl-privacy" />
</stencil-route-switch>
</stencil-router>
</Host>
);
}
}

Полный исходный код находится здесь: https://github.com/positlabs/lightpaintlive-www


Решение проблемы

Я понял, что использовал полный URL-адрес, когда мне нужно было использовать только путь.

https://positlabs.github.io/lightpaintlive-www/ против
/lightpaintlive-www/

Мой код в итоге выглядел так:

this.base = document.querySelector('base').getAttribute('href').match('github')? '/lightpaintlive-www/': '/'

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...