部署Next.js+Nginx时遇/_next/static/chunks 403禁止错误求助
解决Next.js生产环境访问/_next/static/chunks报403 Forbidden的问题
检查文件权限
确保Nginx运行用户(通常为www-data)拥有.next目录的读取权限,执行以下命令:chown -R www-data:www-data /{my_dir}/client/.next/ chmod -R 755 /{my_dir}/client/.next/调整Nginx配置
无需将静态资源转发到Next.js Node服务,直接由Nginx提供静态文件,修改后的配置如下:server { listen 80 default_server; listen [::]:80 default_server; server_name <server_name> <www.server_name>; root /{my_dir}/client/.next/; index index.html; # 直接提供Next.js静态资源,配置长期缓存 location /_next/static/ { expires 1y; add_header Cache-Control "public, immutable"; } location /static/ { expires 1y; add_header Cache-Control "public, immutable"; } # 动态请求转发到Next.js服务 location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }配置说明:
- 移除静态资源路径的
proxy_pass,让Nginx直接从root指定的.next目录读取文件 - 为静态资源添加长期缓存头,提升访问性能
- 移除静态资源路径的
确认Next.js生产环境部署状态
确保已执行next build生成生产构建文件,且运行的是next start启动的生产服务,而非开发环境的next dev
内容的提问来源于stack exchange,提问作者Ehsan Ghochagh
相关产品推荐
相关产品推荐

