使用自定义域的 github 页面上的 Sapper 出现 404 问题

404 Problem with Sapper on github pages using a custom domain

我一直在努力让我的作品集在 Github 具有自定义域的页面上工作,我已经使用 Sapper / Svelte 构建了所有内容。在本地一切正常,但是当我部署网站时,我在第一次加载域时收到 404 错误页面,如果我随后使用链接导航网站,它就可以完美运行。令我惊讶的是,即使索引也能完美运行,但如果我重新加载页面,我又会收到 404。

我关注了这个Sapper and github tutorial。 但是我在静态文件夹(部署在根目录)中使用 CNAME 来使域名正常工作,我还更改了以下位置以包含域。

在 server.js 中,我有以下行作为基础 url:

const dev = NODE_ENV === 'development';

const url = dev ? '/' : '/';

polka() // You can also use Express
    .use(
        url,
        compression({ threshold: 0 }),
        sirv('static', { dev }),
        sapper.middleware()
    )

在 package.json 我有以下内容:

"scripts": {
    "dev": "sapper dev",
    "build": "sapper build --legacy",
    "export": "sapper export --basepath <custom-domain> --legacy",
    "start": "node __sapper__/build",
    "deploy": "npm run export && node ./scripts/gh-pages.js"
  },

我尝试了基本路径和 url 的不同组合。例如,使用和不使用 https,我还尝试了 github 存储库名称。并且还尝试了使用和不使用 CNAME 文件。

我可能不太了解基本路径,但文档对于像我这样的初学者来说不够全面。

有人知道我做错了什么吗?

与同事一起调查问题后,发现问题略有不同。

对于自定义域,无需调整基本路径。所以 server.js 中没有 url 并且 package.json 中没有 --basepath。

没更新的原因是我的gh-pages.js还是用错了sapper export命令

scripts/gh-pages-js 需要看起来像:

ghpages.publish(
    '__sapper__/export/',
    {
        branch: 'master',
        repo: 'https://github.com/<user>/<repo>.git',
        user: {
            name: '<user-name>',
            email: '<email-adress>'
        }
    },
    () => {
        console.log('Deploy Complete!')
    }
)