ZEIT Now/GatsbyJS-部署到子目录
我目前拥有一个名为vidu.sh的域名 我现在想通过ZEIT部署一个盖茨比应用程序。我已经在我的仪表板中添加并配置了域(该域是通过外部服务购买的,我已经更改了名称服务器以匹配ZEIT的one and all's good) 部署的应用程序应在上可用。(请注意,在我写这一行时,我的应用程序可能是可用的,因为我以前的配置涉及Github页面。我想现在迁移到ZEIT,因为它更符合我的需要) 有没有一种方法可以将应用程序部署到所请求的URL,而无需将我的gatsby应用程序源代码移动到名为“/an”/的目录中 如果除了创建“/an”目录之外没有其他选择,我应该如何配置项目以处理自定义404页面?(见附件) 基本上,我想用它作为我的应用程序的根ZEIT Now/GatsbyJS-部署到子目录,gatsby,vercel,Gatsby,Vercel,我目前拥有一个名为vidu.sh的域名 我现在想通过ZEIT部署一个盖茨比应用程序。我已经在我的仪表板中添加并配置了域(该域是通过外部服务购买的,我已经更改了名称服务器以匹配ZEIT的one and all's good) 部署的应用程序应在上可用。(请注意,在我写这一行时,我的应用程序可能是可用的,因为我以前的配置涉及Github页面。我想现在迁移到ZEIT,因为它更符合我的需要) 有没有一种方法可以将应用程序部署到所请求的URL,而无需将我的gatsby应用程序源代码移动到名为“/an”/的
- 应重定向到(HTTP 301)
- :盖茨比提供的标志,用于说明应用程序将托管在某个位置而不是根域(/)上。我不确定使用now CLI将自动添加此标志
- :我知道从根目录提供此文件将允许我自定义now CLI的行为,但我看不出应该添加什么来更改构建脚本
- :通过此选项,似乎可以将404与嵌套文件夹进行匹配,因此“/an”解决方案似乎是最可行的。我只是觉得创建那个目录不是最好的选择
{
"scripts": {
"build": "gatsby build --prefix-paths",
}
}
{
"version": 2,
"rewrites": [
{
"source": "/an",
"destination": "/"
},
{
"source": "/an/(.*)",
"destination": "/$1"
}
]
}
我尝试了以下now.json
config:
{
"version": 2,
"rewrites": [
{
"source": "/an",
"destination": "/"
},
{
"source": "/an/(.*)",
"destination": "/$1"
}
]
}
这是可行的,但不知怎的,我被重定向到了根域。
我怀疑这是盖茨比的行为,ZEIT现在直接处理的事情不会改变URL
有什么提示吗?通过使用
重写
和前缀路径
以下是解决方案:
package.json:
{
"scripts": {
"build": "gatsby build --prefix-paths",
}
}
{
"version": 2,
"rewrites": [
{
"source": "/an",
"destination": "/"
},
{
"source": "/an/(.*)",
"destination": "/$1"
}
]
}
now.json:
{
"scripts": {
"build": "gatsby build --prefix-paths",
}
}
{
"version": 2,
"rewrites": [
{
"source": "/an",
"destination": "/"
},
{
"source": "/an/(.*)",
"destination": "/$1"
}
]
}
现在调用deploy将使用带有标志的构建脚本。服务器将配置为使用重写规则