动态 URL 的编码问题 (notes/[noteName]/edit)

问题描述 投票:0回答:1

我正在通过代理将子文件夹重写到

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]/
,但这在我的本地设置上是相同的。

有什么想法吗?

reactjs .htaccess next.js reverse-proxy
1个回答
0
投票

找到了答案😀下面的链接,解决方案2

我想我几乎有了这个解决方案,但我使用

NextResponse.redirect()
而不是
NextResponse.rewrite()
,我也喜欢使用
decodeURIComponent()
.replaceAll()
的方法。

https://stackoverflow.com/a/79212001/248756

© www.soinside.com 2019 - 2024. All rights reserved.