如何从子文件夹运行 Svelte 应用程序?

fim*_*tow 5 github-pages rollupjs svelte

我在 GitHub 页面中托管了一个 svelte 应用程序,因此它从一个子文件夹提供。问题是所有链接都不再工作了。基本上我需要更改应用程序的基本 URL,但我不知道如何在 svelte 或 rollup 中做到这一点。

PS:我没有使用 Sapper。

Cor*_*rrl 5

使用 vite 的 Svelte 项目可以定义Public Base Path任一 via

该标志可以添加到build里面的脚本中package.json,以便在每个npm run build

"scripts": {
    "dev": "vite",
    "build": "vite build --base=/my/public/path/",
    "preview": "vite preview"
  },
Run Code Online (Sandbox Code Playgroud)


Ste*_*aes 4

您可以为此使用基本元素。

可以直接在index.html中设置它,也可以svelte:head在 svelte 应用程序本身中设置它,这样可以根据开发/生产轻松更改它

<svelte:head>
  <base href="BASEURL">
</svelte:head>
Run Code Online (Sandbox Code Playgroud)

要根据环境设置它,您可以使用环境变量和@rollup/plugin-replace之类的东西,但我觉得这超出了这个问题的范围。但是你可以在这里查看svelte + rollup 中的环境变量