使用 NGINX 在子目录上托管 Gatsby

Hosting Gatsby on a subdirectory using NGINX

如何使用 nginx 在子目录上托管 gatsby.js,我已经尝试使用 proxy_pass http://127.0.0.1:8000gatsby develop 来做到这一点,但我遇到了 [=34= 的问题].有谁知道如何在我尝试使用以下重写代码 rewrite ^([^.\?]*[^/])$ / permanent 的子目录上托管 gatsby。但这没有任何作用。

修复

好吧,一开始我使用 gatsby develop 这样我就可以使用 HMR,但我猜乞丐不能成为选择者,所以根据 fabian 所说的,我做了以下操作。

这是我最终所做的,

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

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

并将 public 文件夹中的内容复制到我网站根目录中名为 blog 的文件夹中,它运行良好(没有 HMR,就是这样)。

GatsbyJS是一个静态站点生成器,也就是说输出静态的HTML、CSS和JS。您实际上不需要设置 NodeJS 服务器来实现 运行。 gatsby develop 只能用于开发(本地),不能用于生产。

基本上,您需要 运行 gatsby build 和 move/upload 本地 public 目录中的所有文件到您服务器上的子目录。当然,该子目录需要是 publicly available/served via NGINX、Apache 或类似目录。例如:

location /subdirectory {
  root /html/my-site/public;
  index.html;
}

找到more details on deploying GatsbyJS here. Also, don't forget to add a Path Prefix.