proxy - 如何使用 Caddy 和子路径部署 Next.js 应用程序?
问题描述
我目前正在使用 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
(如果我直接使用 root /
),一切正常。但这不是我正在寻找的解决方案,因为我在同一个域后面运行了更多应用程序。
有一个解决方法是这个特定的例子。是代理也/_next
和/static
。但对我来说不是一个好的解决方案,原因不同:
- 无法运行超过 1 个 Next.js 应用程序,例如
/beta
,/alpha
。 - 此解决方案不修复页面之间的导航。
- 我想在 Next.js 部分解决这个问题(如果可能的话),而不是在 Caddy 部分做一个解决方法。
看起来这与 Next.js 部分有关。但我对此很迷茫。我试图更改assetPrefix: '/beta'
,然后正在寻找文件/beta/file
而不是/file
. 但是文件也不存在...
有人可以帮助我吗?
解决方案
这行得通吗
localhost:8000
proxy /beta http://localhost:3000/beta
推荐阅读
- powershell - 复制重命名移动文件powershell
- julia - 如何让 Automa.jl 接受来自标准输入的输入?
- javascript - iframe Vimeo 视频结束屏幕按钮操作更改
- raspberry-pi - 在 Raspberry Pi 上安装新的 Linux 发行版
- react-native - 反应原生问题
- python - python for循环没有遍历字典列表的所有索引
- android-studio - Android Studio:如何关闭快捷方式列表选项卡
- base64 - 12C BPEL 中的 Base64 编码正在用 BPEL 变量名替换父标记
- mysql - 如何将 MySQL 的响应添加到 Redux?
- elasticsearch - ElasticSearch:Active_Primary_sherds 为 0,活动分片也为 0