当前位置:首页 » 《随便一记》 » 正文

Failed to load module script: Expected a JavaScript module script but the server ···报错解决

18 人参与  2024年09月24日 12:41  分类 : 《随便一记》  评论

点击全文阅读


报错信息如下:

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.

这个错误通常发生在单页面应用(SPA)中,当你尝试通过非根路径(如 http://example.com/some/path)访问你的应用时,服务器可能会返回一个 text/html 类型的响应,而不是预期的 JavaScript 类型的模块脚本。这可能是因为服务器没有正确配置来处理单页面应用的路由。

要解决这个问题,你可以尝试以下几种方法:

1. 确保服务器配置正确:如果你使用的是像 Nginx 或 Apache 这样的服务器,确保你的服务器配置能够正确地为所有路由提供 index.html 文件。例如,在 Nginx 中,你可以使用以下配置:

nginx

location / {    try_files $uri $uri/ /index.html;}

这段配置告诉 Nginx,如果请求的 $uri 不存在,则提供 /index.html 文件。

2. 检查 vue.config.js 中的 publicPath 配置:确保你的 publicPath 配置正确。如果你的应用部署在子路径下,你需要在 vue.config.js 中设置 publicPath 来反映这个子路径。例如,如果你的应用部署在 http://example.com/my-app/ 下,你应该这样设置:

javascript

// vue.config.jsmodule.exports = {  publicPath: '/my-app/',  // 其他配置...}

3.如果是通过vite生产的代码,应该在vite.config.js设置 base: '/may-app/', // 设置公共资源路径

import {fileURLToPath,URL} from 'node:url'import {defineConfig} from 'vite'import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/export default defineConfig({base: '/site/', // 设置公共资源路径plugins: [vue(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}}})


点击全文阅读


本文链接:http://zhangshiyu.com/post/163908.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1