vue引入静态jquery报错如何解决
更新时间:2023-11-14
首先,在Vue中使用jQuery需要正确引入jQuery库文件,否则会出现报错。一般经常会遇到的情况是直接引入CDN,但引入的CDN地址是没有自己的域名的,被认为是安全风险,所以浏览器会阻止加载。如下所示:
CDN方式引入jQuery报错示例:
Console报错信息如下:
jquery.min.js:formatted:8593 Mixed Content: The page at '解决该问题的方法有两种,其一是使用本地jQuery文件,其二是使用webpack打包引入。下面将分别进行详细说明。 1. 使用本地jQuery文件 我们可以下载jQuery并将其保存到本地,然后再通过相对路径引入。示例代码如下:' was loaded over HTTPS, but requested an insecure script 'http://code.jquery.com/jquery-3.5.1.min.js'. This request has been blocked; the content must be served over HTTPS.
本地方式引入jQuery示例:
这种引入方式需要将jQuery文件下载到本地并存储到指定目录,代码中的"./js/"就是指定的目录。这样引入虽然能够解决报错问题,但却需要手动下载和更新相关文件,比较繁琐。 2. 使用webpack打包引入 webpack是一个现代化的打包工具,它可以将多个文件进行打包压缩,不仅解决了前端资源引用问题,还可以实现代码分离、懒加载等功能。在使用vue-cli创建的项目中,也默认配置了webpack。我们可以通过webpack将jQuery打包压缩,并根据需要进行引入。具体步骤如下: (1)安装jquery和webpack 首先需要安装jquery和webpack。在命令行中执行以下命令:
npm install jquery --save npm install webpack webpack-cli --save-dev(2)编写webpack配置文件 在项目根目录下新建webpack.config.js文件,并编写如下代码:
const path=require('path'); module.exports={ entry:'./src/main.js', output:{ filename:'bundle.js', path:path.resolve(__dirname,'dist') }, module:{ rules:[ { test:/\.css$/, use:['style-loader','css-loader'] }, { test:/\.(png|jpg|gif)$/i, use:[ { loader:'url-loader', options:{ limit:8192 } } ] } ] } }其中,entry表示打包的入口文件,output表示打包后的文件名和存储路径,module.rules表示配置规则,这里主要配置了css和图片的打包规则。 (3)在Vue组件中引入jQuery 最后,在Vue组件中引入jQuery即可。示例代码如下:
webpack方式引入jQuery示例:
import $ from 'jquery'; export default{ data(){ return{ message:'Hello World!' } }, mounted(){ $('body').css('background','#f0f0f0'); } }该方法需要先通过npm安装jquery,然后在Vue组件中使用import命令引入。这种方式引入jQuery不需要手动更新文件,且可以打包压缩,提高页面性能。 综上所述,使用本地jQuery文件和使用webpack打包引入jQuery两种方式均可以解决vue引入静态jquery报错的问题。前者灵活性较高,后者可打包压缩,实现代码分离,选择哪种方式可以根据实际情况进行选择。