我正在运行一个Next.js开发服务器。当我转到第1页,然后单击指向第2页的链接时,它工作得很好。(只是澄清一下,我使用的不是Next的<Link>
标签的as
道具,而是普通的旧href
。)
然而,如果我随后刷新页面#2,页面本身就会加载,所有图像也会加载...但所有的Java脚本文件都会失败,并显示404:
Http://localhost:3000/page2/_next/static/chunks/main.js?ts=1612664646023网络::ERR_ABORTED 404(未找到)2LOCALHOST/:196 GET
Http://localhost:3000/page2/_next/static/development/_buildManifest.js?ts=1612664646023网络::ERR_ABORTED 404(未找到)2LOCALHOST/:1获取
Http://localhost:3000/page2/_next/static/chunks/webpack.js?ts=1612664646023网络::ERR_ABORTED 404(未找到)7LOCALHOST/:196 GET
Http://localhost:3000/page2/_next/static/chunks/main.js?ts=1612664646023网络::ERR_ABORTED 404(未找到)
有人知道我能做些什么来解决这个问题吗?
4条答案
按热度按时间5lwkijsr1#
在继承代码中遇到了类似的问题,搜索了一百万次,这是排名靠前的结果。对于所有其他沮丧的开发人员,我的答案是,检查您的‘Link’和‘router.ush()’,特别是如果您使用的是定制路由器。Link和router.ush()应该指向服务器URL。您可以传递‘as’来屏蔽浏览器的url。
lx0bsm1f2#
已通过从next.config.js文件中删除
assetPrefix: "."
解决。此设置使资源路径基于当前页面,而不是浴缸路径URL。
即:
而不是:“test.com/_Next/file.js”
它将是:“test.com/page/_Next/file.js”
这显然不存在于此。
xriantvc3#
在我们的例子中,我们通过跳过处理URL的next.js路由器修复了这个问题:
kb5ga3dv4#
我试图删除资产前缀:“。来自next.config.js文件,并且工作了!
选中此处,在这种情况下应使用资产前缀:https://nextjs.org/docs/api-reference/next.config.js/cdn-support-with-asset-prefix