使用自定义域的 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!')
}
)
我一直在努力让我的作品集在 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!')
}
)