如何使用nginx将gatsby.js托管在子目录中,我已经尝试使用proxy_pass http://127.0.0.1:8000
和gatsby develop
来实现此目的,但是Socket.io却遇到了问题。有谁知道如何在以下尝试的重写代码rewrite ^([^.\?]*[^/])$ $1/ permanent
上托管gatsby的子目录。但这无济于事。
好的,起初我使用gatsby develop
以便可以使用HMR,但是我猜乞be不能成为选择者,因此根据fabian所说的,我做了以下事情。
这就是我所做的,最终,
我在pathPrefix: '/blog'
文件中添加了行gatsby-config.js
我在项目的主目录上运行gatsby build --prefix-paths
然后将public
文件夹中的内容复制到我网站根目录中的blog
文件夹中,它可以正常工作(没有HMR)。
答案 0 :(得分:2)
GatsbyJS是静态站点 generator ,这意味着它可以输出静态HTML,CSS和JS。您实际上并不需要设置NodeJS服务器来使其运行。 gatsby develop
应该仅用于开发(本地),而不是用于生产。
基本上,您将要运行gatsby build
并将本地public
目录中的所有文件移动/上载到服务器上的子目录。当然,该子目录需要为publicly available/served via NGINX,Apache或类似名称。例如:
location /subdirectory {
root /html/my-site/public;
index.html;
}
找到more details on deploying GatsbyJS here。另外,请不要忘记add a Path Prefix。