我已经花了一天多的时间寻找解决方案。我是 JavaScript 新手,所以也许我错过了针对有经验的 JS 开发人员的解决方案。我需要在单个文件 vue 组件中使用的第 3 方脚本(如果这是唯一的方法,则在我的应用程序中全局使用)具有以下模式:
(function (win) {
win.MyUtil = {
"func1": function func1() { ... },
"func2": function func1() { ... }
}
}(window));
这扩展了浏览器的 Window 对象,因此 MyUtil 是全局可见的,对吗?
然后我在 index.html 文件的头部添加了一个脚本标签:
脚本文件位于 /my_project_folder/src/assets 中。我还在 src 属性中尝试了许多不同的路径(例如“./assets/my_util.js”或“<%= BASE_URL %>/assets/my_util.js”并将文件移动到不同的实际文件夹。我应该在某个地方读到是一个文件夹“/my_project/static”。我试过了。
结果总是一样的。浏览器显示此警告(我自己翻译成英文):“脚本' http://localhost:8080/@/assets/my_util.js '已加载,尽管它的 MIME 类型 (text/html) 不是有效的 MIME 类型用于 JavaScript。” 我认为这表明脚本实际上已加载。当然,我也尝试过指定正确的 MIME 类型,但没有成功。但是,当我将 alert("my_util") 添加到脚本时,没有显示任何消息。
然后我的 vue 组件中的代码会引发错误“ ReferenceError: MyUtil is not defined ”。这发生在“已安装”钩子中,但稍后在按钮单击中也会发生,因此这不是加载顺序的问题。
这里出了什么问题?我该如何解决?
顺便说一句,它在纯 html 中运行良好。
叮当猫咪
守着一只汪
相关分类