【问题标题】:How can I deploy a Next.js app using Caddy and a subpath?如何使用 Caddy 和子路径部署 Next.js 应用程序?
【发布时间】:2019-07-29 01:16:16
【问题描述】:

我目前正在使用 Next.js 8.0.3 做一个应用程序。

在本地一切都很好。但是,当我使用 Caddy 部署应用程序时,我遇到了一些麻烦。

关于我的 Next.js 部分,我正在使用自定义服务器并为该服务器提供服务,我正在这样做:

next build
NODE_ENV=production node server.js

问题本身是关于将应用程序路由到像 /beta 这样的子路径以运行该子路径内的所有应用程序。

球童文件

localhost:8000

proxy /beta http://localhost:3000/ 

当我在浏览器中打开http://localhost:8000/beta 运行应用程序时,HTML 已正确加载,但未加载所有样式、资产和 javascript 文件。既不是页面之间的导航。它在/ 后面查找这些文件,而我期待在/beta 后面。

复制失败的 url 并尝试找到添加 /beta 的正确路径,文件也不存在...

尽管如此,没有子路径/beta(如果我直接使用根目录/)一切正常。但这不是我正在寻找的解决方案,因为我在同一个域后面运行了更多应用程序。

有一个解决方法是这个特殊的例子。也是代理/_next/static。但对我来说不是一个好的解决方案,原因不同:

  1. 无法运行超过 1 个 Next.js 应用,例如 /beta/alpha
  2. 此解决方案不修复页面之间的导航。
  3. 我想在 Next.js 部分解决这个问题(如果可能的话),而不是在 Caddy 部分做一个解决方法。

看起来这与 Next.js 部分有关。但我对此很迷茫。我尝试更改assetPrefix: '/beta',然后在/beta/file 上而不是/file 上查找文件。但是文件也不存在...... ????

有人可以帮帮我吗?

【问题讨论】:

    标签: proxy reverse-proxy next.js caddy caddyfile


    【解决方案1】:

    这行得通吗

    localhost:8000
    
    proxy /beta http://localhost:3000/beta 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2019-10-10
      • 2019-01-06
      • 1970-01-01
      相关资源
      最近更新 更多