1. 使用CDN

这里把常用的vue、vuex、elementui、echarts、axios都引入成cdn的方式

1、在index.html引入CDN

找到public/index.html在上方引入下边的cdn。

[!NOTE]

引入script的时候,一定要把vue.js放到最上边,最先引入,不然后边的js加载会有问题

  <!-- 引入样式 --><link href="https://cdn.bootcss.com/element-ui/2.8.2/theme-chalk/index.css" rel="stylesheet"><link href="https://cdn.bootcss.com/element-ui/2.15.14/theme-chalk/index.css" rel="stylesheet"><script src="https://cdn.bootcss.com/vue/2.7.14/vue.min.js"></script><script src="https://cdn.bootcss.com/element-ui/2.15.14/index.js"></script><script src="https://cdn.bootcss.com/vue-router/3.6.5/vue-router.min.js"></script><script src="https://cdn.bootcss.com/vuex/3.6.2/vuex.min.js"></script><script src="https://cdn.bootcss.com/axios/1.11.0/axios.min.js"></script><script src="https://cdn.bootcss.com/echarts/6.0.0/echarts.min.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/vue-echarts/6.7.3/index.esm.min.js"></script>

2、批量注释掉引用

main.js项目主js或者ts中去除对element 、vue、vuex、echarts、axios的引用

全局搜索

// import Vue from 'vue'
// import Vuex from 'vuex'
// import ElementUI from 'element-ui'
// import 'echarts'
// import request from 'axios'
// import { MessageBox } from 'element-ui'
// import { Loading, Message, MessageBox, Notification } from 'element-ui'

把这些直接引用的地方都注释掉

3、main.js(指定文件排查)

在mian.js中注释掉 element 、vue、vuex、echarts、axios的引用

其中**Vue.use(Elment)**要注释掉。不然启动会报错

4、router/index.js(指定文件排查)

注释掉

// import Vue from 'vue'
// import VueRouter from 'vue-router'

保留

Vue.use(VueRouter)

[!NOTE]

这里要注意一下,Vue.use(VueRouter)中的VueRouter不能改为其他字段,否则会报错

5、store/index.js(指定文件排查)

注释掉

// import Vue from 'vue'
// import Vuex from 'vuex'

保留

Vue.use(Vuex)

6、webpack出去除依赖

在webpack的配置文件中去除对vue、vuex、axios、echarts、element等的依赖。

查看主目录的vue.config.js或者webpack.config.js之类的打包配置文件

也可以搜索module.exports = {此文件中就可以加上配置,去除以来

module.exports = {// 引入外部库, 无需webpack打包处理externals: {'vue' : 'Vue','vue-router':'VueRouter','vuex':'Vuex','axios':'axios','element-ui':'ElementUI','mockjs': 'Mock','echarts': 'echarts','ueditor': 'UE'}
}

2. 路由懒加载

router/index.js

路由使用懒加载模式

// import Vue from 'vue'
// import VueRouter from 'vue-router'
import Layout from '@/layouts'
import { publicPath, routerMode } from '@/config'Vue.use(VueRouter)
export const constantRoutes = [{path: '/login',component: () => import('@/views/login/index'),hidden: true,},{path: '/register',component: () => import('@/views/register/index'),hidden: true,},{path: '/401',name: '401',component: () => import('@/views/401'),hidden: true,},{path: '/404',name: '404',component: () => import('@/views/404'),hidden: true,},
]
// 路由懒加载
const device = ()=> import("@/views/device/index")
const deviceVersion = ()=> import("@/views/deviceVersion/index")
const mqttUser = ()=> import("@/views/mqttUser/index")
const role = ()=> import("@/views/personnelManagement/roleManagement/index")
const user = ()=> import("@/views/personnelManagement/userManagement/index")
export const asyncRoutes = [{path: '/',component: Layout,redirect: '/index',children: [{path: 'index',name: 'Index',component: () => import('@/views/index/index'),meta: {title: '首页',icon: 'home',affix: true,},},],},{path: "/device",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: device,meta: {title: "设备管理",icon: "vector-square",permissions: ["admin"],},},],},{path: "/deviceVersion",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: deviceVersion,meta: {title: "设备版本",icon: "cloud-upload-alt",permissions: ["admin"],},},],},{path: "/mqttUser",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: mqttUser,meta: {title: "设备接入",icon: "cube",permissions: ["admin"],},},],},{path: "/role",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: role,meta: {title: "角色管理",icon: "diagnoses",permissions: ["admin"],},},],},{path: "/user",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: user,meta: {title: "用户管理",icon: "user-friends",permissions: ["admin"],},},],},{path: '*',redirect: '/404',hidden: true,},
]const router = new VueRouter({base: publicPath,mode: routerMode,scrollBehavior: () => ({y: 0,}),routes: constantRoutes,
})export function resetRouter() {location.reload()
}export default router

3. Nginx开启Gzip压缩

httpserver 模块中添加配置

server {# 其他配置...gzip on; # 开启gzip压缩gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/png image/gif image/jpeg; # 设置需要压缩的文件类型gzip_comp_level 6; # 设置gzip的压缩级别,1-9,9最压缩,但最耗时gzip_buffers 16 8k; # 设置系统获取几个单server存储gzip的压缩结果数据流。gzip_http_version 1.1; # 设置识别HTTP协议版本,默认1.1gzip_vary on; # 此指令可以让前端的缓存服务器缓存在不同的压缩方式上。# gzip_proxied any; # 对于后端服务器返回的数据进行压缩,默认不对数据进行压缩。
}

重启nginx使配置生效

/usr/local/nginx/sbin/nginx -s reload

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/94918.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/94918.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/94918.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

49.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--Refit跨服务调用

Refit是一个用于.NET平台的REST库,它可以将REST API转换为实时类型安全的接口。通过Refit,我们可以轻松实现微服务之间的跨服务调用,使服务间通信变得更加简单和类型安全。本文将介绍如何在我们的项目中使用Refit来实现微服务间的通信。 一、什么是Refit Refit是一个强大的REST…

日志ELK、ELFK、EFK

一.ELK架构Elasticsearch Logstash Kibana 数据库日志处理日志显示1.logstash的使用&#xff08;1&#xff09;input&#xff1a;输入&#xff08;2&#xff09;filter&#xff1a;处理&#xff08;3&#xff09;output&#xff1a;输出2.ELFK架构Filebeat-->Elasticsearc…

【CUDA进阶】MMA分析Bank Conflict与Swizzle(下)

目录前言1. bank conflict 分析2. 通过 padding 解决 bank conflict3. mma 搭配 wmma 实现矩阵乘法计算3.1 代码实现3.2 补充&#xff1a;stmatrix_sync 函数分析3.3 补充&#xff1a;__shfl_sync 函数详解4. swizzle 原理讲解5. swizzle 实现思路讲解结语下载链接参考前言 学习…

天气查询系统

项目要求 项目知识点 问题与解决 代码分部 结果展示 项目要求 1.显示天气预报系统界面 2.系统可以通过选择城市配置获取不同城市天气信息 3.查看实时的天气信息 &#xff08;当前温度、最高温度、最低温度、当前湿度、最高湿度、最低湿度、风向、风力、风级等信息&#x…

三重积分的对称性

文章目录前言柱面球面前言 规律作息 柱面 太牛了。我完全看不懂。实际上就类似于极坐标系。 球面 看到这么多东西&#xff0c;我真害怕。今天是 8.30 &#xff0c;不管 9.10 有没有复习完概率的强化&#xff0c;我都一定要开始套卷&#xff0c;还有专业课的复习。ϕ\phiϕ…

深入理解 RabbitMQ:从底层原理到实战落地的全维度指南

引言&#xff1a; 本文总字数&#xff1a;约 18500 字预计阅读时间&#xff1a;45 分钟 为什么我们需要 RabbitMQ&#xff1f; 在当今分布式系统架构中&#xff0c;消息队列已成为不可或缺的核心组件。想象一下&#xff0c;当你在电商平台下单时&#xff0c;系统需要处理库存…

宽带有丢包,重传高的情况怎么优化

宽带丢包和重传率高是一个非常影响网络体验的常见问题。它会导致游戏卡顿、视频通话模糊、网页加载慢等。别担心&#xff0c;我们可以按照从易到难的顺序&#xff0c;系统地排查和优化。请遵循以下步骤&#xff1a;第一步&#xff1a;基础排查&#xff08;自己动手&#xff0c;…

Kotlin 协程之Channel 的高阶应用

前言 了解了 Channel 的基础概念和基本使用 后&#xff0c;我们再来看一看 Channel 的特性以及高阶应用。 Channel 是"热流" 热流概念 Channel 是热流&#xff08;Hot Stream&#xff09;&#xff0c;具备以下特性&#xff1a; 数据的生产和消费是两套独立的流程 …

PostgreSQL表空间(Tablespace)作用(管理数据库对象的存储位置)(pg_default、pg_global)

文章目录**1. 灵活的数据存储管理**- **逻辑与物理分离**&#xff1a;表空间为数据库对象&#xff08;如表、索引&#xff09;提供了一个逻辑名称与物理存储路径的映射。用户无需直接操作底层文件路径&#xff0c;只需通过表空间名称管理数据。- **多数据库共享表空间**&#x…

Ansible 核心运维场景落地:YUM 仓库、SSH 公钥、固定 IP 配置技巧

1&#xff1a;如何一次性验证所有主机能否被 Ansible 访问&#xff1f; 答&#xff1a;使用临时命令&#xff1a;ansible all -m ansible.builtin.ping或验证 sudo 是否正常&#xff1a;ansible all -m ansible.builtin.ping --become -K2&#xff1a;如何用 Ansible 统一配置…

rman导致的报错ORA-27037: unable to obtain file status

有套3节点的11204集群环境&#xff0c;在db2上配置了rman备份&#xff0c;今天例行检查时发现db1和db3上不定期有报错&#xff0c;报错如下&#xff1a;Control file backup creation failed:failure to open backup target file /u01/app/oracle/product/11.2.0/db_1/dbs/snap…

Kubernetes 与 GitOps 的深度融合实践指南

前言&#xff1a;在云原生技术飞速发展的今天&#xff0c;Kubernetes&#xff08;简称 K8s&#xff09;已成为容器编排领域的事实标准&#xff0c;而 GitOps 作为一种基于 Git 的云原生运维理念&#xff0c;正与 K8s 深度融合&#xff0c;为企业实现自动化、可追溯、可审计的应…

REST-assured 接口测试编写指南

REST-assured 简介 REST-assured 是一个基于 Java 的 DSL&#xff08;领域特定语言&#xff09;库&#xff0c;专门用于简化 RESTful API 测试的编写。它提供了流畅的 API 接口&#xff0c;使得测试代码更加易读易写&#xff0c;支持 JSON 和 XML 等多种响应格式的验证。 基本环…

内网应用如何实现外网访问?外地通过公网地址访问内网服务器的设置方法

一、内网应用程序在外网需要连接访问遇到的问题我们经常需要在内网中部署服务&#xff0c;比如一个 Web 服务器或者数据库&#xff0c;但由于本地没有公网IP&#xff0c;这些服务无法直接从外地公网访问。如自己家里的监控系统&#xff0c;在家时能查看&#xff0c;但出门在外就…

ubuntu24.04 QT中配置opencv4.12

假如生成的opencv路径是&#xff1a;/usr/local/opencv4.12QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINE…

客户端是否都需要主动发送`FindService`报文来寻找服务

<摘要> 在AUTOSAR SOME/IP-SD的服务发现流程中&#xff0c;客户端是否需要主动发送FindService报文来寻找服务&#xff0c;是理解服务订阅逻辑的一个关键。这将直接影响到事件组订阅的触发时机和网络行为。下文将结合规范&#xff0c;对这一问题进行深入剖析。 <解析&…

Go语言流式输出实战:构建高性能实时应用

什么是流式输出&#xff1f; 流式输出&#xff08;Streaming Output&#xff09;是一种服务器推送技术&#xff0c;允许数据在生成过程中逐步发送到客户端&#xff0c;而不是等待所有数据准备就绪后一次性发送。这种技术显著改善了用户体验&#xff0c;特别是在处理大量数据或长…

操作系统上的Docker安装指南:解锁容器化新世界

摘要&#xff1a;本文详细介绍了Docker在不同操作系统上的安装方法。主要内容包括&#xff1a;Windows系统通过Docker Desktop安装&#xff0c;需启用Hyper-V和WSL2&#xff1b;Mac系统同样使用Docker Desktop&#xff0c;根据芯片类型选择版本&#xff1b;Linux系统以Ubuntu为…

【微信小程序】分别解决H5的跨域代理问题 和小程序正常不需要代理问题

——总问&#xff1a;何为跨域和代理&#xff1f; &#x1f539;什么叫跨域&#xff1f; 前端在浏览器里发请求时&#xff0c;如果 域名 / 协议 / 端口 三个中有一个不一样&#xff0c;就会触发 跨域问题。 例子&#xff1a; 页面跑在 http://localhost:5173你要请求接口 http:…

数字签名 digital signature

文章目录1、严谨的定义2、技术原理&#xff1a;如何工作&#xff1f;第一步&#xff1a;发送者 - 签名过程第二步&#xff1a;接收者 - 签名验证过程3、C语言实现示例4、关键技术要点5、安全注意事项6、最重要的应用&#xff1a;TLS/SSL 与网站安全1、严谨的定义 数字签名是一…