我正在通过代理将子文件夹重写到
localhost:3000
,使用htaccess中的Proxy。
RewriteRule ^(.*)$ http://localhost:3000/my-folder/$1 [P,L]
我在
Next Config中使用
basePath
和 assetPrefix
(两者都用于 /my-folder
)
这似乎效果很好,甚至是文件夹子页面,例如
/notes/list
。
但是,对于像
notes/[noteName]/edit
这样的页面,它似乎效果不佳,我相信是因为 [ 和 ] 在 HTML 中被编码为 %5B 和 %5D 。虽然在我的本地设置上似乎工作正常。
运行
next build
和 next start
后,我最终遇到控制台日志错误,例如
404 Not found /_next/static/chunks/app/notes/%5BnoteName%5D/edit/page-d3a7b102dc1b542a.js
服务器上还有一个白页。 我的本地设置没有问题。
即使我创建一个中间件并记录请求,它也显示服务器正确接收了该请求:
Requested route: /_next/static/chunks/app/notes/%5BnoteName%5D/edit/page-d3a7b102dc1b542a.js
文件夹存在,但该文件夹不使用编码字符:
[noteName]/
,但这在我的本地设置上是相同的。
有什么想法吗?
找到了答案😀下面的链接,解决方案2
我想我几乎有了这个解决方案,但我使用
NextResponse.redirect()
而不是 NextResponse.rewrite()
,我也喜欢使用 decodeURIComponent()
与 .replaceAll()
的方法。