我正在使用 nextjs 构建一个静态站点,并使用静态 Web 应用程序产品在 azure 中托管它。部署我的应用程序后,我注意到动态生成的 urlnext export
实际上区分大小写,即https://MYAPP.azurestaticapps.net/MYPAGE无法解析,但https://MYAPP.azurestaticapps.net/mypage可以解析。有没有办法在 nextjs 或 azure 级别解决这个问题?
问问题
215 次
1 回答
0
正常在nextjs中,所有的URL解析都应该不区分大小写,但是目前有个bug“URL解析区分大小写不一致” https://github.com/vercel/next.js/issues/21498
有解决此问题的解决方法 - 使用动态路由实现重定向:
import { useEffect } from 'react'
import { useRouter } from 'next/router'
import Error from 'next/error'
export default function ResolveRoute() {
const router = useRouter()
useEffect(() => {
if (router.pathname === router.pathname.toLowerCase()) {
// Route is already lowercase but matched catch all
// page not found, display 404
return <Error statusCode={404} />
} else {
router.push(router.pathname.toLowerCase())
}
})
return <p>Redirecting...</p>
}
另一种选择是使用 Azure ApplicationGateway,因为它的规则不区分大小写。
https://docs.microsoft.com/en-us/azure/application-gateway/url-route-overview
于 2021-06-14T20:21:41.033 回答