使用NGINX在子目录上托管Gatsby

时间:2018-08-13 18:46:03

标签: nginx subdirectory gatsby

如何使用nginx将gatsby.js托管在子目录中,我已经尝试使用proxy_pass http://127.0.0.1:8000gatsby develop来实现此目的,但是Socket.io却遇到了问题。有谁知道如何在以下尝试的重写代码rewrite ^([^.\?]*[^/])$ $1/ permanent上托管gatsby的子目录。但这无济于事。

修复

好的,起初我使用gatsby develop以便可以使用HMR,但是我猜乞be不能成为选择者,因此根据fabian所说的,我做了以下事情。

这就是我所做的,最终,

我在pathPrefix: '/blog'文件中添加了行gatsby-config.js

我在项目的主目录上运行gatsby build --prefix-paths

然后将public文件夹中的内容复制到我网站根目录中的blog文件夹中,它可以正常工作(没有HMR)。

1 个答案:

答案 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