今日进行前端项目大版本更新部署,部署后一直报错,且是之前版本一直未出现的错误,详细报错信息如下:
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.
经过排查,发现是因为在本次大版本更新后,修改了很多的样式,并且有很多样式是从另一个项目复制过来的,因此导致有一部分文件(图片)并没有用到,但在css以及JavaScript文件中有引入,因此在开发环境中并未有报错,而部署在线上后经过打包,服务器无法找到这些文件,不断进行重定向,此时默认的访问类型为"text/html"。因此产生的报错,并且有一些文件命名时,使用了中文命名,但是引用方式并不支持中文命名的文件,因此产生的报错。这个时候一个一个修改,查找太慢了,会导致无法赶上项目上线时间,又经过一段时间的查询,发现了一个解决方法:
export default defineConfig(({ mode, command }) => {
const env = loadEnv(mode, process.cwd())
const { VITE_APP_ENV } = env
return {
// base: VITE_APP_ENV === 'production' ? './' : './',
}
})
即注释了
base:
但为什么注释掉后部署,能够正常访问,原因未知。
注:
我这次遇到的问题不是常见的访问类型为"text/plain"的问题,这个问题可以通过配置nginx配置文件进行解决。
参考博客地址:
https://huaweicloud.csdn.net/654a11d35543f15fea1a2711.html