我一直在尝试让我的投资组合使用自定义域的Github页面,我已经用Sapper / Svelte构建了所有的东西。在本地,一切都很好,但是当我部署站点时,当我第一次加载域时,我得到了404错误页面,如果我然后使用链接导航站点,它会非常完美。令我惊讶的是,即使索引运行良好,但当我重新加载页面时,我再次得到404。
我跟踪了这个Sapper和github教程。但是我正在使用静态文件夹中的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文件。
我可能不太了解基本知识,但对于像我这样的初学者来说,文档还不够广泛。
有人知道我做错了什么吗?
发布于 2022-05-16 08:58:27
在与同事们讨论了这个问题后,发现问题略有不同。
对于自定义域,不需要进行基本路径调整。所以在server.js中没有url,在package.json中没有basepath.
它没有更新的原因是我的gh-pages.js仍然使用了错误的皂苷导出命令。
脚本/gh页面-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!')
}
)https://stackoverflow.com/questions/72226547
复制相似问题