当前位置:   article > 正文

flask+Vue(Vite)部署,js文件不能被正确解析解决方案

flask+Vue(Vite)部署,js文件不能被正确解析解决方案

构建后,浏览器不执行js文件,触发错误Strict MIME type checking is enforced for module scripts per HTML spec.Expected a JavaScript module script but the server responded with a MIME type of "text/plain".​

问题原因
构建后,因为生产环境index.html​文件中<script>​标签使用了type="module"​,而服务器对于js文件的类型返回的是text/plain​,类型不一致,其详细解释可见.mjs 与 .js

解决方案一
手动修改index.562b9b5a.js​文件后缀为.mjs​,并将其对应的文件引用中文件名做相应更改(可能不止限于index.html​文件中)

缺点:麻烦,容易引起其他错误

解决方案二
配置Vite构建时不使用import​,如设置build.target​为edge15​,详细信息见Vite文档

缺点:强行降低版本可能导致构建失败解决方案三(推荐)
对js文件更改响应头,在flask中插入代码

  1. #更改js文件的返回头
  2. @app.after_request
  3. def changeHeader(response):
  4. disposition = response.get_wsgi_headers('environ').get(
  5. 'Content-Disposition') or ''#获取返回头文件名描述,如'inline; filename=index.562b9b5a.js'
  6. if disposition.rfind('.js') == len(disposition) - 3:
  7. response.mimetype = 'application/javascript'
  8. return response

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/166717
推荐阅读
相关标签
  

闽ICP备14008679号