Next 13.4部署后链接自动追加.txt致页面无法加载,求非降级解决方案
解决Next.js 13.4静态导出后重定向自动添加.txt后缀的问题
检查服务器静态文件映射配置
由于你使用了output: "export"生成静态站点,Next.js会将页面导出为.html文件(比如list.html)。问题大概率出在服务器没有正确映射请求路径到对应html文件,反而错误添加了.txt后缀。- 若用Nginx,修改配置文件,确保请求优先匹配对应路径的html文件:
location / { try_files $uri $uri/ $uri.html =404; } - 若用Apache,在站点根目录的
.htaccess中添加规则:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ $1.html [L]
- 若用Nginx,修改配置文件,确保请求优先匹配对应路径的html文件:
排查Next.js重定向规则
如果你在next.config.js中配置了自定义重定向,检查规则里的destination是否错误添加了.txt后缀。确保重定向目标路径正确:const nextConfig = { // 现有配置... async redirects() { return [ { source: '/old-user-list', destination: '/dashboard/user-managment/list', // 此处不要加.txt permanent: true, }, ]; }, };检查应用内路由跳转代码
遍历应用中所有使用Link组件或router.push的地方,确认没有硬编码或动态生成路径时错误拼接了.txt:// 正确示例 <Link href="/dashboard/user-managment/list">用户管理列表</Link> // 错误示例(需修正) <Link href="/dashboard/user-managment/list.txt">用户管理列表</Link>清理缓存后重新构建部署
构建缓存可能导致异常残留,执行以下命令清理后重新构建:rm -rf .next out npm run build再将生成的
out目录重新部署到服务器。
内容的提问来源于stack exchange,提问作者Alperen Kapusuz
相关产品推荐
相关产品推荐

