failed to load module script:如何解决vite项目部署到nginx后非根路径刷新报错
在打包vite项目后,部署到nginx服务器上会出现这样一个报错:
failed to load module script: expected a javascript module script but the server responded with a mime type of "text/html". strict mime type checking is enforced for module scripts per html spec.
如果访问根路径(如app.xxxx.cn)没有问题,而在非根路径(如https://app.xxx.cn/me/userinfo)刷新页面时出现此错误,可以从以下几个方面排查原因:
1. 检查base配置
在vite配置文件中,确保base配置正确,例如:
export default defineconfig({ base: './', minify: true });
编译后的index.html中引入脚本的src应该是以./开头的。
2. 检查发布是否成功
确认是否已成功将项目发布到nginx服务器上。
3. 配置nginx rewrite
如果链接中不包含#,需要配置nginx的rewriteルール,例如:
location / { try_files $uri $uri/ /index.html; }
4. 使用#号链接
如果链接使用#号的格式,结尾应该是/#/或/index.html#/。