使用 NGINX 在子目录上托管 Gatsby

Jon*_*mar 3 nginx subdirectory gatsby

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

使固定

好吧,一开始我是gatsby develop这样使用的,以便我可以使用 HMR,但我想乞丐不能挑剔,所以根据 fabian 所说的,我做了以下事情。

这是我所做的,最终,

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

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

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

Fab*_*ltz 5

GatsbyJS 是一个静态站点生成器,这意味着它输出静态 HTML、CSS 和 JS。您实际上并不需要设置 NodeJS 服务器来运行它。gatsby develop应该只用于开发(本地),而不是生产。

基本上,您需要运行gatsby build并将本地public目录中的所有文件移动/上传到服务器上的子目录。当然,该子目录需要通过 NGINX、Apache 或类似工具公开可用/提供服务。例如通过:

location /subdirectory {
  root /html/my-site/public;
  index.html;
}
Run Code Online (Sandbox Code Playgroud)

在此处查找有关部署 GatsbyJS 的更多详细信息。另外,不要忘记添加 Path Prefix

  • 该指令必须是“index index.html” (2认同)