javascript - Vue.js 3 - “加载模块脚本失败:服务器以非 JavaScript MIME 类型“text/html”响应
问题描述
我正在 Vue 3 中建立一个网站,所有路线都存储在routes.json
. (我这样做是为了在一个地方更新所有会随时间变化的数据。)但是当我尝试eval()
为我views
的 . “text/html”的非 JavaScript MIME 类型。” 在控制台中。下面是router/index.js
:
import { createRouter, createWebHistory } from 'vue-router'
import routes from '../../data/routes.json'
let evalRoutes = []
for (let i = 0; i < routes.routes.length; i++)
evalRoutes[i] = routes.routes[i]
for (let i = 0; i < evalRoutes.length; i++)
evalRoutes[i].component = eval(evalRoutes[i].component)
console.log(evalRoutes)
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes: evalRoutes,
})
export default router
以下是routes.json
:
{
"routes": [
{
"path": "/",
"name": "Home",
"component": "() => import('../views/Home')"
},
{
"path": "/about",
"name": "About",
"component": "() => import('../views/About')"
},
{
"path": "/contact",
"name": "Contact",
"component": "() => import('../views/Contact')"
},
{
"path": "/policy",
"name": "Policy",
"component": "() => import('../views/Policy')"
}
]
}
我以前没有见过任何人这样做,所以如果您知道解决方案,请将其留在下面:)
设置:我有 Vue 3、Babel、具有历史模式和 SASS 的路由器,仅此而已。
解决方案
我(提问者)已经想通了!要执行此类操作,我们需要设置"component"
为 null。然后,在 中index
,我们不评估每个字符串导入,而是将每个组件设置为具有名称的导入。
推荐阅读
- batch-file - 用批处理检查进程是否正在回答
- cmake - 如何关闭子目录的 CMake automoc?
- html - DCWebGL 滑块找不到 light.hdr 文件
- c - ZeroMQ 发布者 (C) 的 CPU 使用率为 100%
- java - 通过类层次结构发生尾递归
- python - 有没有办法在python中将一个方程除以另一个方程?
- javascript - JS 错误:stringtime.match 不是函数?在尝试将持续时间从“2h 3min”字符串转换为数字时
- java - CORS Angular 8 它给了我
- javascript - 如何防止我的产品列表在父组件更新时重新呈现?
- java - Java - 将数据从 DataOutputStream 转换为 DataOutputStream 大小未知的文件