Как запустить приложение Svelte из подпапки?

Я размещаю стройное приложение на страницах GitHub, поэтому оно обслуживается из подпапки. Проблема в том, что все ссылки больше не работают. В основном мне нужно изменить базовый URL-адрес приложения, но я не знаю, как это сделать в svelte или rollup.

P.S: Я не использую Sapper.


person fimtow    schedule 17.03.2021    source источник


Ответы (1)


Для этого можно использовать элемент base.

Либо установите его непосредственно в вашем index.html, либо используйте svelte:head, чтобы установить его в самом приложении svelte, это позволяет легко изменять его в соответствии с разработкой / производством

<svelte:head>
  <base href="BASEURL">
</svelte:head>

Чтобы установить его в соответствии со средой, вы можете использовать что-то вроде переменных среды и @ rollup / plugin -replace, но я чувствую, что это выходит за рамки этого вопроса. Но вы можете посмотреть здесь Переменные среды в svelte + rollup

person Stephane Vanraes    schedule 17.03.2021
comment
Поиграясь с базовым элементом, похоже, что это работает с URL-адресами, такими как <a href="test", но не особенно с URL-адресами, которые начинаются с косой черты, <a href="/test". - person wp-overwatch.com; 18.03.2021
comment
Если вы используете другой домен в базовом элементе, URL-адреса, начинающиеся с косой черты, все равно будут иметь измененный домен. - person wp-overwatch.com; 18.03.2021
comment
Я уже использовал базовый элемент, но он не работает, как сказал @ wp-overwatch.com, URL-адреса, начинающиеся с косой черты, не меняются. - person fimtow; 18.03.2021
comment
У меня такая же проблема при обслуживании статического сайта из вложенного каталога и установке базового элемента в $ layout.svelte И также установке базового пути в svelte.config.cjs. Я пытаюсь установить относительные ссылки на такие маршруты, как / about и /, и он всегда отправляет пользователя обратно в корневой домен вместо корневого приложения, - person kiloton; 10.04.2021