当前位置: 首页 > news >正文

webpack+nginx开启gzip压缩部署项目

首先在服务器安装nginx

sudo apt update
sudo apt install nginx

安装完毕后将前端项目打包 webpack.output.publicPath里配置资源基础路径 资源打包出来就是/publicPath开头

1.http://www.xxx.com/ publicPath: '/'

2.http://www.xxx.com/web publicPath: '/web/' 尾巴多加个/是因为按需加载的js拼static会少拼一个/ 拼出来就是/webstatic/js/... 导致资源加载不出来

假如我们是http://www.xxx.com/web访问 我们就将webpack.output.path:path.resolve(__dirname, '../web') copyWebpackPlugin里的to也为../web 保证打包后的文件夹名为web去映射nginx路径

webpack需要改项目输出文件目录名的地方:

new CopyWebpackPlugin({patterns: [{from: path.resolve(__dirname, '../public'), // 复制public下的文件to: path.resolve(__dirname, '../web'), // 复制到web目录中 (这个配置是重点)filter: (source) => {return !source.includes('index.html') // 需要忽略不copy的文件 index.html已经被htmlWebpackPlugin生成了},},],}),
  output: {filename: 'static/js/[name].[chunkhash:8].chunk.js', // 每个输出js的名称 只要不动公共库的代码 入口文件的代码是和公共库分开的 所以hash就不会变 使用chunkhash利于浏览器的缓存path: path.resolve(__dirname, '../web'), // 打包结果输出路径 (这个配置是重点)clean: true, // webpack4需要配置clean-webpack-plugin来删除dist文件,webpack5内置了publicPath: '/web/', // 打包后文件的公共前缀路径 尾巴多加个/是因为按需加载的js拼static会少拼一个/ 拼出来就是/webstatic/js/... 导致资源加载不出来 (这个配置是重点)},

webpack层面的工作配置完后,pnpm build打包得到文件夹web,使用scp在项目根目录命令行将文件夹上传至服务器nginx的站点目录(macos):

scp -r web 用户名@服务器ip:/usr/share/nginx/html

如果出现no such file or directory或者permission denied等错误 则服务器写入的这个文件夹/usr/share/nginx/html没有读写权限 上服务器给个权限就好了:

sudo chmod 777 /usr/share/nginx/html

nginx的默认欢迎页在/usr/share/nginx/html/index.html nginx默认会去读html文件夹下的资源 所以把打包的项目web放到/usr/share/nginx/html文件夹下

上传后我们去到/etc/nginx/conf.d目录 这个目录是nginx的子配置文件夹 里面的.conf文件会被/etc/nginx/nginx.conf主配置文件include进http节点中 我们只需要在/etc/nginx/conf.d新建子目录文件然后编写server节点即可

nginx中一个server节点即为一个服务 http节点里可以写多个server服务 一个server里可以写多个location路径映射不同的项目 这里新建一个web.conf配置文件:

server {listen 80; # 监听的端口 一般都是80端口 可以自己改server_name localhost 127.0.0.1;# 服务器域名/iproot /usr/share/nginx/html;# 配置服务的根目录index index.html index.htm;# 首页文件名# 直接访问服务器或者乱输404->index.html 都请求nginx欢迎页location / {try_files $uri $uri/ /index.html;}# 自己的项目 http://域名/ip/web访问站点 /web后面要加/ 完全匹配 否则/weba也能匹配location /web/ {# 当项目文件夹名和webpack的publicpath不一致时要用别名指定映射的文件夹 否则会找不到这个publicPath文件夹# alias /usr/share/nginx/html/web;# 当location匹配不到时会尝试查找$uri $uri就是请求的requestMapping 没找到会尝试查找$uri的文件夹下的资源有没有 没找到最后就请求/web/index.html 也就是处理history路由404问题try_files $uri $uri/ /web/index.html;# 非带 hash 的资源,需要配置 Cache-Control: no-cache,避免浏览器默认为强缓存expires -1; # 给-1表示不缓存}# static文件夹下的资源缓存location /web/static {# 带 hash 的资源,需要配置长期缓存 默认给1年expires 1y;}# 继续配置location加入新的站点# location /foo {# }}

安装compression-webpack-plugin在webpack配置插件开启gzip压缩

    const CompressionPlugin = require('compression-webpack-plugin')// gzip压缩plugins: [new CompressionPlugin({test: /\.(js)$/i,filename: '[path][base].gz', // 文件命名algorithm: 'gzip', // 压缩格式,默认是gzipthreshold: 10240, // 只有大小大于该值的资源会被处理。默认值是 10kminRatio: 0.8, // 压缩率,默认值是 0.8}),]

一般都会用compressionwebpackplugin对js文件进行gzip压缩 打包成.gz文件减少体积 nginx当然也可以在线gzip压缩 但是nginx在线压缩会消耗服务器资源和不必要的时间浪费 所以一般打包时gzip压缩好上传 gzip压缩后同一个js会生成.js和.gz两份文件 这是为了防止.gz文件被误删后依然能访问js返回给客户端避免404报错

gzip的原理: 浏览器请求到服务器返回后的gz文件后 根据响应头的内容编码头Content-Encoding: gzip来辨识用什么格式对内容进行解码 返回的gzip就用gzip进行解码

nginx压缩一样的 只是压缩的工作是nginx做的不是我们打包时做的 每次请求时对返回的资源进行在线实时压缩

nginx支持gzip:

gzip是http节点的配置在nginx.conf里,我们不提倡经常动主配置文件nginx.conf,所以我们在它同级目录创建一个gzip.conf配置文件,里面写gzip的配置 然后include到nginx.conf中的http节点

gzip.conf:

# gzip:启用gzip压缩
gzip on;
# gzip_comp_level:压缩等级 值为1-9 1表示要是程度最低,要是效率最高,9刚好相反,压缩程度最高,但是效率最低最费时间。
gzip_comp_level 5;
# gzip_min_length:启用gzip压缩的最小长度 响应体达到这个长度才压缩 nignx计量大小的单位:bytes[字节] / kb[千字节] / M[兆] 例如: 1024(b/byte) / 10k|K / 10m|M
gzip_min_length 1k;
# gzip_buffers 压缩的buffers数量和大小 默认值取决于系统一个内存页的大小 32 4k | 16 8k 这个值一般和系统有关 用默认值即可 不建议设置
# gzip_buffers 4 16k;
# gzip_proxied详解 含义: nginx作为反向代理开启压缩服务端返回数据的条件
# http里有个via头在代理服务器中传播时会被加上(不管是正向代理还是反向代理)。通过这个头部,服务器就可以知道请求经过了哪些代理
# 默认情况下,nginx不会对被代理的请求进行压缩,它通过via头识别请求是不是被代理过。如果要对被代理的请求进行压缩,可以配置这个参数
# 所有可能值及含义
# off - 关闭Nginx服务器对后台服务器返回结果的Gzip压缩
# expired - 启用压缩,如果header头中包含 "Expires" 头信息
# no-cache - 启用压缩,如果header头中包含 "Cache-Control:no-cache" 头信息
# no-store - 启用压缩,如果header头中包含 "Cache-Control:no-store" 头信息
# private - 启用压缩,如果header头中包含 "Cache-Control:private" 头信息
# no_last_modified - 启用压缩,如果header头中不包含 "Last-Modified" 头信息
# no_etag - 启用压缩 ,如果header头中不包含 "ETag" 头信息
# auth - 启用压缩 , 如果header头中包含 "Authorization" 头信息
# any - 无条件启用压缩
gzip_proxied any;# 压缩所有被代理的请求体
# gzip_vary 开启时,会在返回头插入”Vary: Accept-Encoding” 该指令用于设置使用Gzip进行压缩发送是否携带“Vary:Accept-Encoding”头域的响应头部。主要是告诉接收方,所发送的数据经过了Gzip压缩处理
gzip_vary on;
# gzip压缩的文件类型
gzip_types
application/javascript
application/x-javascript
text/javascript
text/css
text/xml
application/xhtml+xml
application/xml
application/atom+xml
application/rdf+xml
application/rss+xml
application/geo+json
application/json
application/ld+json
application/manifest+json
application/x-web-app-manifest+json
image/svg+xml
text/x-cross-domain-policy;
# 启用gzip压缩静态资源
gzip_static on;
# 设置对应的浏览器禁用gzip压缩 根据requestheader里的useragent匹配
gzip_disable "MSIE [1-6]\.";# ie1-6不开启gzip压缩
# 设置针对不同的HTTP协议版本,选择性地开启和关闭Gzip功能。
gzip_http_version 1.1;# http1.1才开启gzip压缩

关键的就是gzip ongzip_static ongzip_vary on三个值要设置开启

开启gzip后我们就可以重启nginx服务了

sudo /usr/sbin/nginx -s reload

 此时打开站点就能看到部署OK了,资源响应成功了并且服务端返回的是gzip格式 响应头也都加上了:

 history路由模式访问/web/aaa/bbb不存在的资源也返回了index.html了没有404,try_files生效了:

到这里基本部署就成功了 (*^▽^*) 

当然/web和项目根目录的文件夹名字可以随意自己取 配置根路径/访问也行 就不用/web了 直接映射到location / {}就行 将dist里的资源平铺到html/文件夹下就会自动读取index.html 这样直接访问不加任何前缀就OK了

相关文章:

AsterixDB初识

本篇博客记录了AsterixDB的学习过程,一些简单的操作以及关于R-tree的部分内容基本概念 后台启动AsterixDB cd ~/asterixdb/asterixdb/asterix-server/target/asterix-server-0.9.10-SNAPSHOT-binary-assembly/apache-asterixdb-0.9.10-SNAPSHOT/opt/local/bin ./start-sample-…...

sql server 动态SQL,返回查询变量

如下:DECLARE @SearchSql NVARCHAR(MAX) DECLARE @Count INT SET @SearchSql = SELECT @Count = COUNT(*) FROM t_pl_test EXEC sp_executesql @SearchSql,N@Count INT OUTPUT,@Count OUTPUT SELECT @Count 总数sp_executesql后面不要直接贴SQL,要通过一个变量来代替OUTPU…...

学习进度条2024-05-16

2024-05-16所花时间(包括上课) 1h代码量(行) 50博客量(篇) 1了解到的知识点 新建内容...

正式开启全站HTTPS加密之旅

Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 正式开启全站HTTPS加密之旅 日期:2017-7-14 阿珏 谈天说地 浏览:2158次 评论:0条经过有段时间的内测,博客正式开启全站https。建…...

编写git脚本.sh

举例:更改连接方式后需要将远程分支与本地分支同步: 验证远程 URL: 首先,确保你已经正确更改了远程仓库的 URL:git remote -v 获取所有远程分支: 使用 git fetch 命令获取所有远程分支的最新信息: git fetch --all 查看所有本地和远程分支: 列出所有本地和远程分支: g…...

如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 参考下列两个之前发布的教程结合使用即可: 《快捷自由定时重启、注销、关机》《如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)》 就是先设定好勾选对 来源路径’Zip打包,…...

webpack+nginx开启gzip压缩部署项目

首先在服务器安装nginx sudo apt update sudo apt install nginx 安装完毕后将前端项目打包 webpack.output.publicPath里配置资源基础路径 资源打包出来就是/publicPath开头 1.http://www.xxx.com/ publicPath: / 2.http://www.xxx.com/web publicPath: /web/ 尾巴多加个/…...

coco 2017数据集 类别提取并转换为yolo数据集

coco 2017数据集提取和转换本次分割的动物数据集 4G一. coco2017数据集结构标注文件解析二. 提取需要的类别重新封装成coco数据集(这里以动物类别为例)三. 转换为yolo 数据集本次分割的动物数据集 4G https://download.csdn.net/download/qq_26696715/8…...

jdk线程池技术

jdk线程池ThreadPoolExecutor的7个参数 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {if (corePoolSize &l…...

keepalived+nginx 双机热备搭建

keepalivednginx 双机热备搭建一、准备工作1.1 准备两台centos7.91.2 nginx 与 keepalived软件 双机安装1.3 ip分配1.4 修改主机名1.5 关闭selinux&#xff08;双机执行&#xff09;1.6 修改hosts&#xff08;双机执行&#xff09;二、安装keepalived2.1 执行一下命令安装keepa…...

【云原生】容器编排技术Docker Compose

为什么需要Docker ComposeDocker Compose介绍Docker Compose安装Docker Compose版本介绍Docker Compose基本命令介绍Docker Compose实战Docker Compose Yml文件介绍总结为什么需要Docker Compose Docker帮助我们解决服务的打包安装的问题&#xff0c;随着而来的问题就是服务过…...

String、StringBuilder、StringBuffer的四大区别解析

面试官问&#xff1a;String、StringBuilder、StringBuffer有什么区别么&#xff1f; 这个问题是个高频问题&#xff0c;所以今天从源码上进行深度刨析他们的区别。 如何回答&#xff1a; 从四个点出发&#xff1a; 1、可变/不可变类 String是不可变类。他被被final修饰&…...

【C#进阶】C# 匿名方法

序号系列文章18【C#进阶】C# 事件19【C#进阶】C# 集合类20【C#进阶】C# 泛型文章目录前言1、什么是匿名方法&#xff1f;2、delegate 运算符3、Lambda 表达式3.1、Lambda 表达式的自然类型3.2、Lambda 表达式的显示返回类型4、关于匿名方法的总结结语前言 &#x1f4fa; hello大…...

C++并发编程之二 在线程间共享数据

文章目录1.1 互斥锁&#xff08;mutex&#xff09;保护共享数据1.1.1 std::mutex 的成员函数 std::mutex::lock() 和std::mutex::unlock() (不推荐使用)1.1.2 使用std::lock_guard保护共享数据1.1.3 使用std::unique_lock保护共享数据1.2 保护共享数据的其他方式1.2.1 初始化过…...

FL Studio和Cubase哪个容易一些 FL Studio和Cubase修音哪个好

FL Studio和Cubase哪个容易一些&#xff1f;FL Studio是很适合新手使用的宿主软件。FL Studio和Cubase修音哪个好&#xff1f;FL Studio和Cubase在修音方面各有千秋。 一、FL Studio和Cubase哪个容易一些 FL Studio是很适合新手上手的宿主软件&#xff0c;这得益于FL Studio独…...

限定学校|在站博士后省公派新加坡国立大学从事博后研究

Y博士为国内在站博士后&#xff0c;我们向其推荐了人社部博管办国外博士后派出项目及所在省的相关项目&#xff0c;最终助其获得新加坡国立大学的博士后邀请函&#xff0c;鉴于该导师名列全球高被引科学家榜单&#xff0c;顺利获批省国际培养博士后资助项目&#xff0c;如期出国…...

信息技术最全总结(备考教资)

信息技术 备考教资信息技术知识点总结&#xff0c;欢迎收藏&#xff01;需要xmind和备考书籍的可以评论区留言。 第一部分-学科专业知识 第一章-信息技术基础知识 信息与信息技术概述 信息概述 信息的定义 信息本身不是实体信息是通过文字、数字、图像、图形、声音、视频等方…...

spring5(三):IOC操作Bean管理(基于xml方式)

IOC操作Bean管理&#xff08;基于xml方式&#xff09;前言一、基于 xml 方式创建对象二、基于 xml 方式注入属性1. 使用 set 方法进行属性注入2. 使用有参数构造进行属性注入3. p 名称空间注入简化操作&#xff08;了解&#xff09;三、xml 注入其它类型属性1. 字面量2. 注入属…...

Vue的快速上手

一、创建一个 Vue 应用 前提条件 熟悉命令行已安装 16.0 或更高版本的 Node.js在本篇中&#xff0c;我们将介绍如何在本地搭建 Vue 单页应用。创建的项目将使用基于 Vite 的构建设置&#xff0c;并允许我们使用 Vue 的单文件组件 (SFC)。 确保你安装了最新版本的 Node.js&…...

通过ELK+kafka采集微服务日志

在springboot微服务中采集日志推送kafka背景整体流程图快速搭建kafkazk开发环境通过logback记录日志到kafka快速搭建ELK环境Kibana查看&#xff0c;统计日志背景 在分布式的项目中&#xff0c;各功能模块产生的日志比较分散&#xff0c;同时为满足性能要求&#xff0c;同一个微…...

开启新航路,拓尔思发力AIGC市场 | 爱分析调研

2022年&#xff0c;随着AI聊天机器人GhatGPT在世界范围内持续火爆&#xff0c;极具创意、表现力、个性化且能快速迭代的AIGC技术成功破圈&#xff0c;成为全民讨论热点。 AIGC是指在确定主题下&#xff0c;由算法模型自动生成内容&#xff0c;包括单模态内容如文本、图像、音频…...

01-死磕QNX someip

1. vsomeip3.1.20版本 环境配置 export COMMONAPI_CONFIG/etc/commonapi.ini export LD_LIBRARY_PATH/sdcard/someip:$LD_LIBRARY_PATH export VSOMEIP_CONFIGURATION/etc/vsomeip-service.json export VSOMEIP_APPLICATION_NAMEHelloWorldSomeIPService sysctl -w net.ine…...

OTFS输入输出关系

目录 1. OTFS输入输出关系的矩阵表示 1.1 OTFS&#xff1a;矩阵表示 1.2 OTFS发射机的实现 1.2.1 传统的OTFS调制 ISFFT 海森堡变换 1.2.2 基于IDZT的OTFS调制 1.3 OTFS接收机的实现 1.3.1 传统的OTFS解调 维格纳变换 SFFT 1.3.2 基于DZT的OTFS解调 Appendix-Matlab C…...

Java的抽象类和接口

目录 一 、抽象类 1、抽象类概念 2、抽象类语法 3、抽象类特性 4、抽象类的作用 二、接口 1、接口的概念 2、语法规则 3、接口使用 4、接口特性 5、实现多个接口 6、接口间的继承 7、抽象类和接口的区别 8、接口使用实例 9、Clonable 接口和深拷贝 三、Object类…...

作为一个女测试员是什么样的体验?

面试时极度紧张&#xff0c;语无伦次&#xff0c;觉得肯定没戏&#xff0c;最后却拿到高薪offer。 工作之后我听同事们讲&#xff0c;测试总监面试官并没打算要我&#xff0c;但身边的人都问他&#xff1a; 那个小姐姐什么时候来报道&#xff1f;... 于是在众人的期待的目光…...

移动端 REM 适配

Vant 中的样式默认使用 px 作为单位&#xff0c;如果需要使用 rem 单位&#xff0c;推荐使用以下两个工具&#xff1a; postcss-pxtorem 是一款 postcss 插件&#xff0c;用于将单位转化为 rem lib-flexible 用于设置 rem 基准值 下面我们分别将这两个工具配置到项目中完成 R…...

哈希表【leetcode】

笔记&#xff1a;代码随想录 理论 概念 哈希表&#xff08;hash table&#xff0c;散列表&#xff09;&#xff1a;是根据关键码的值而直接访问的数据结构&#xff0c;说白&#xff0c;数组就是一张哈希表。 哈希函数&#xff1a;把变量直接映射为表上的索引。 哈希碰撞&a…...

【Gem5】有关gem5模拟器的资料导航

网上有关gem5模拟器的资料、博客良莠不齐&#xff0c;这里记录一些总结的很好的博客与自己的学习探索。 一、gem5模拟器使用入门 官方的教程&#xff1a; learning_gem5&#xff1a;包括gem5简介、修改扩展gem5的示例、Ruby相关的缓存一致性等。gem5 Documentation&#xff1…...

R语言中apply系列函数详解

文章目录applylapply, sapply, vapplyrapplytapplymapplyR语言的循环效率并不高&#xff0c;所以并不推荐循环以及循环嵌套。为了实现循环功能的情况下&#xff0c;兼顾效率&#xff0c;R语言提供了apply系列函数&#xff0c;用于对规则的数据进行函数式的迭代处理。 apply a…...

AOP的另类用法 (权限校验自定义注解)

&#x1f473;我亲爱的各位大佬们好&#x1f618;&#x1f618;&#x1f618; ♨️本篇文章记录的为 AOP的另类用法 (权限校验&&自定义注解) 相关内容&#xff0c;适合在学Java的小白,帮助新手快速上手,也适合复习中&#xff0c;面试中的大佬&#x1f649;&#x1f649…...

【机器学习】机器学习建模调参方法总结

文章目录一、前言1.1 数据来源1.2 理论简介二、知识总结2.1 回归分析2.2 长尾分布2.3 欠拟合与过拟合2.4 正则化2.5 调参方法2.5.1 贪心调参 &#xff08;坐标下降&#xff09;2.5.2 网格调参GridSearchCV2.5.3 贝叶斯调参三、建模与调参3.1 线性回归3.1.1 模型建立3.1.2 查看训…...

Python数据分析师|Pandas之基础知识

版权声明&#xff1a;原创不易&#xff0c;本文禁止抄袭、转载&#xff0c;侵权必究&#xff01; 目录一、数据分析简介二、数据分析简介三、数据查看四、知识总结五、作者Info一、数据分析简介 随着科技的发展&#xff0c;数据变得尤为重要&#xff0c;甚至有着“数据为王”&…...

macOS 13.3(22E252)/12.6.4/11.7.5正式版发布

系统介绍 3 月 28 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.3 更新&#xff08;内部版本号&#xff1a;22E252&#xff09;苹果今天还发布了macOS Monterey 12.6.4和macOS Big Sur 11.7.5&#xff0c;本次更新距离上次发布隔了 42 天。 macOS Ventura 带来…...

速度与兼容性功能大比拼:7款浏览器测评,哪一款更好用

还在为使用哪款浏览器而发愁吗&#xff1f;电脑配置低&#xff0c;又想浏览网页顺畅、下载速度快&#xff0c;那么就要挑选功能齐全、速度快的浏览器。话不多说&#xff0c;给大家做了7款浏览器的最全测评&#xff0c;看看2023年哪个浏览器更好用&#xff0c;更适合自己。 本次…...

【建议收藏】2023年中高级软件测试大厂面试秘籍,为你保驾护航金三银四,直通大厂

前言 从几十份顶级面试仓库和300多篇高质量面经中总结出一份全面成体系化的软件测试高级面试题集。 随着软件测试岗位技术发展的成熟&#xff0c;自动化、性能、框架等一下子就进入了我们的视野内&#xff0c;同时&#xff0c;软件测试自身的技术栈也正在不断扩展&#xff0c…...

Cinema 4D 2023.1.3安装包下载及安装教程

[软件名称]:Cinema 4D 2023.1.3 [软件大小]: 1.0GB [安装环境]: Win11/Win 10 [软件安装包下载]: https://pan.quark.cn/s/c2324deaa028 CINEMA 4D字面意思是4D电影&#xff0c;不过其本身就是3D的表现软件&#xff0c;由德国Maxon Computer开发&#xff0c;以极高的运算速度和…...

IDEA vs Eclipse:使用体验对比

1. 概述 IDEA 和 Eclipse 都是常见的集成开发环境&#xff08;IDE&#xff09;&#xff0c;用于编写和调试代码。它们都有一些共同的功能&#xff0c;例如代码编辑器、调试器、版本控制等等。但是在具体的使用体验上&#xff0c;它们有很多不同之处。 本文将对 IDEA 和 Eclip…...

新手学SpringCloud前需知道的5点

目录 第一点&#xff1a; 什么是微服务架构 第二点&#xff1a;为什么需要学习Spring Cloud 第三点&#xff1a; Spring Cloud 是什么 第四点&#xff1a; SpringCloud的优缺点 1、SpringCloud优点 2、SpringCloud缺点 第五点&#xff1a; SpringCloud由什么组成 1&…...

Java集合—HashMap为什么2倍扩容 、HashMap的key允许空值而Hashtable却不允许

目录 1. Java集合—HashMap为什么2倍扩容 1.1 从源码分析 2. 为什么HashMap的key允许空值&#xff0c;而Hashtable却不允许 2.1 从源码分析 1. Java集合—HashMap为什么2倍扩容 HashMap的初始容量都是2的n次幂的形式存在的&#xff0c;而扩容也是2倍的原来的容量进行扩容&a…...

国内、外(翻)的新闻网站推荐

也许有很多朋友和我一样&#xff0c;小小螺丝天天关注国家大事&#xff0c;总喜欢在茶余饭后关注下国内外新闻&#xff0c;除了新闻广播和电视之外还能有哪些方式呢&#xff1f;今天就给大家盘点总结一下。 一、国内 1.今日头条&#xff1a;链接&#xff1a;今日头条 推荐等…...

PHP初级教程------------------(2)

目录 运算符 赋值运算符 算术运算符 比较运算符 逻辑运算符 连接运算符 错误抑制符 三目运算符 自操作运算符 ​编辑 计算机码 位运算符 运算符优先级 流程控制 控制分类 顺序结构 分支结构 If分支 ​ Switch分支 循环结构 For循环 while循环 do-while循环 循环控制 ​ …...

js的递归函数——实现可收放的树形菜单

递归函数实现树形菜单创建假数据或者请求接口数据定义递归函数&#xff0c;处理数据调用函数&#xff0c;渲染页面效果展示完整代码树形菜单是一种常见的网站导航方式&#xff0c;它通常由多个层级的菜单项组成&#xff0c;每个菜单项可以有子菜单项。在JavaScript中&#xff0…...

如何高效搭建资产管理平台?众安科技告诉你答案是图技术

本⽂整理⾃ NebulaGraph x 阿⾥云计算巢专场中众安保险的⼤数据应⽤⾼级专家曾⼒带来的《众安资产在 NebulaGraph 的应⽤实践》分享&#xff0c;视频⻅链接。 ⼤家好&#xff0c;我是众安数据科学应⽤中⼼的曾⼒&#xff0c;今天很⾼兴在这⾥可以跟⼤家分享 NebulaGraph 在众安…...

使用mybatis-plus-generator配置一套适合你的CRUD

1、maven引入 mybatis-plus-generator 和模板引擎&#xff0c;你也可以使用freemarker之类的&#xff0c;看个人 <!-- mybatisplus代码生成器 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactI…...

vue门户网站,滚动到可视化区域展示动画效果方案

1.准备两个工具库&#xff1a; &#xff08;1.1&#xff09; animate.css&#xff1a;动画库 &#xff08;动画效果展示&#xff1a;Animate.css | A cross-browser library of CSS animations.&#xff09; &#xff08;1.2&#xff09;wowjs: 负责滚动到可视化区域&#xff…...

【0180】PG内核读取pg_hba.conf并创建HbaLine记录(1)

文章目录 1. pg_hba.conf文件是什么?2. postmaster何时读取pg_hba.conf?2.1 pg内核使用pg_hba.conf完成客户端认证的原理2.2 读取pg_hba.conf的几个模块3. pg内核读取pg_hba.conf过程3.1 VFD机制获取文件描述符3.2 根据fd读取文件内容相关阅读: 【0178】DBeaver、pgAdmin I…...

【五】线程安全VS线程不安全

1. Java内存模型的特征 Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性这三个特征来建立。下面逐个看下哪些操作实现这三个特性&#xff1a; 1.1 原子性&#xff08;Atomicity&#xff09; 由Java内存模型来直接保证的原子性变量操作包括 read、load、assig…...

【大屏设计方案】

大屏设计方案一、非等比放大(填充满整个屏幕)目的屏幕比例大小和设计稿的差的不多目的屏幕比例大小和设计稿的差很多二、等比放大&#xff08;比如16&#xff1a;9&#xff09;解决方案之后就可以用rem了&#xff0c;有两种便利的方式&#xff1a;也可以用media 根据不同的屏幕…...

input 标签原生实现数字选择器

在使用开源的UI框架时&#xff0c;实现数字选择器很容易&#xff0c;直接拷贝就行&#xff0c;如iview、elementui...等。但有时项目不使用第三方样式库&#xff0c;这样的话UI控件只能自己实现。笔者就遇到过这样的情况&#xff0c;自己实现数字选择器&#xff0c;下面分享下实…...

大数据项目实战之数据仓库:用户行为采集平台——第3章 用户行为日志

第3章 用户行为日志 3.1 用户行为日志概述 用户行为日志的内容&#xff0c;主要包括用户的各项行为信息以及行为所处的环境信息。收集这些信息的主要目的是优化产品和为各项分析统计指标提供数据支撑。收集这些信息的手段通常为埋点。 目前主流的埋点方式&#xff0c;有代码…...

zookeeper 学习(一):简单认识zookeeper

zookeeper 学习(一)&#xff1a;简单认识zookeeper zk官网 zk是什么&#xff1f; highly reliable distributed coordination. 来自官网&#xff0c;高可用的分布式协调服务&#xff0c;应用最多的场景就是用来做其他服务中间件的协调者&#xff0c;我最开始接触zk &#xff0c…...

IP 归属用 Ip2region 就够了

文章目录Ip2region 简介是什么特性支持的编程语言案例实操依赖获取IP输入流转化解析IP测试抖音、微博、小红书等各平台相继上线" 网络用户IP地址显示功能"&#xff0c; 境外显示 国家&#xff0c; 境内显示到 省市&#xff0c;且该功能无法关闭&#xff0c;IP地址为强…...

最小生成树kruskal-修建公路1

题目描述 L 城一共有 N 个小区。 小明是城市建设的规划者,他计划在城市修 M 条路,每修建一条路都要支付工人们相应的工钱(需要支付的工钱 = 路的长度)。 然而小明所拿到的经费并不够支付修建 M 条路的工钱,于是迫于无奈,他只能将计划改变为修建若干条路,使得 N 个小区之…...

Linux常用命令汇总

一、文件和文件夹操作 1、进入某一文件夹&#xff1a; cd xxx/yyy/简便记忆&#xff1a;改变目录&#xff0c;change directory&#xff0c;cd 2、复制文件到另一个文件&#xff1a; cp xxx/xxx.yyy ddd/rrr.zzz简便记忆&#xff1a;复制&#xff0c;copy&#xff0c;cp 第…...

vue部署包可配置后台接口地址

有时候一个部署包可能要应用于不同服务器&#xff0c;这就需要频繁更换后台地址。 由此引申出了部署包可直接配置后台地址的需求&#xff0c;这样就不需要频繁打包了。 方法 1. public 新增 config.js 文件&#xff08;会被恶意修改地址&#xff0c;不安全&#xff09; publi…...

企业电子采购系统:采购过程更规范,更透明

满足采购业务全程数字化&#xff0c; 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购&#xff0c;是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说&#xff0c;这是个既省钱又能提高供应链效率的有效方法…...

吴艳妮夺冠!再创个人赛季最佳

据中国田径队消息,北京时间5月19日,世界田联洲际巡回赛东京站,中国田径队收获两金。女子100米栏比赛,吴艳妮以12秒80刷新个人赛季最好成绩,夺得冠军。这是吴艳妮继上周大阪站比赛之后,再次夺冠。男子跳远比赛,张溟鲲以8米13刷新个人最好成绩,夺得冠军。来源 | 央视新闻…...

首都师范大学召开党委理论学习中心组(扩大)学习会

5月15日,学校召开党委理论学习中心组(扩大)学习会,传达学习习近平总书记近期重要讲话重要指示精神。校党委理论学习中心组成员、相关院系、单位负责人代表参加学习会。会议由党委副书记孙晓峰主持。会上,孙晓峰传达领学了习近平总书记在重庆考察时关于党纪学习教育的重要讲…...

Python程序设计 内置模块 系统操作

系统操作 1. os 模块 Python 的 os 模块封装了常见的文件和目录操作&#xff0c;本文只列出部分常用的方法&#xff0c;更多的方法可以查看官方文档。 1.1 os.path常见用法 os.path 模块是跨平台的&#xff0c;即使不打算在平台之间移植自己的程序也应该用 os.path&#xf…...

用ntpdate同步时间出现问题

1. 使用ntpdate同步 [rootnode ~]# ntpdate ntp.aliyun.com4 Aug 00:07:17 ntpdate[20924]: adjust time server 203.107.6.88 offset -0.001543 sec2. 查看时间 [rootnode ~]# date Thu Aug 4 00:07:46 CST 20223. 如果时间对不上 报错信息 cna02:~ # ntpdate ntp1.aliyu…...

Linux quotacheck命令教程:如何检查和修复文件系统的磁盘配额(附案例详解和注意事项)

Linux quotacheck命令介绍 quotacheck命令是用于扫描文件系统以检查磁盘配额的一致性。它生成、检查和修复配额文件。这个命令通常在系统引导时运行&#xff0c;或者在手动更改了配额设置后运行。 Linux quotacheck命令适用的Linux版本 quotacheck命令在大多数Linux发行版中…...

18.双线性插值缩放算法的matlab与FPGA实现

一篇文章为你讲透双线性插值 简介 1.什么是插值 图片放大是图像处理中的一个特别基础的操作。几乎在每一个图片相关的项目中&#xff0c;从传统图像处理到i深度学习&#xff0c;都有应用。   简单来说&#xff0c;插值指利用已知的点来“猜”未知的点&#xff0c;图像领域插…...

【Maven】Nexus私服简介_下载安装_登录

1、简介 1.1介绍 Nexus私服&#xff0c;也被称为Maven仓库管理器&#xff0c;是许多公司在自己的局域网内搭建的远程仓库服务器。提供了强大的仓库管理功能和构件搜索功能&#xff0c;使得开发人员能够更方便地管理和使用Maven项目中的依赖库。 1.2作用 内网访问&#xff1…...

winform嵌入excel 设置父窗体分辨率不是100% 嵌入excel分辨率变成双倍大小

在WinForms应用程序中嵌入Excel时&#xff0c;遇到分辨率问题可能是由于DPI缩放导致的。Windows 10及更高版本默认启用了DPI缩放&#xff0c;以便在高分辨率显示器上显示更清晰的内容。这可能会导致嵌入的应用程序&#xff08;如Excel&#xff09;看起来变大或变小。 解决方案 …...

大气污染防治乙级资质办理中容易忽略哪些事情?

企业在办理大气污染防治乙级资质时&#xff0c;容易忽略以下几个重要方面&#xff0c;这些疏忽可能导致资质申请受阻或延误&#xff1a; 细读最新政策与标准&#xff1a;资质标准和申请要求可能会随时间调整&#xff0c;企业容易忽视最新的政策变动&#xff0c;使用过时的信息准…...

拓宽知识储备量(指数级成长)

对于增强自己的知识储备&#xff0c;不是什么知识都往脑袋里去塞&#xff0c;最好的办法就是让自己的心态回到自己初心的时候&#xff0c;始终保值一颗学者的心&#xff0c;你像那些成功人士&#xff0c;比如格力&#xff0c;华为&#xff0c;腾讯等这样的大公司创始人哪个不是…...

Python 全栈体系【四阶】(四十四)

第五章 深度学习 九、图像分割 3. 常用模型 3.4 DeepLab 系列 3.4.3 DeepLab v3&#xff08;2017&#xff09; 在DeepLab v3中&#xff0c;主要进行了以下改进&#xff1a; 使用更深的网络结构&#xff0c;以及串联不同膨胀率的空洞卷积&#xff0c;来获取更多的上下文信…...

Chrome查看User Agent的实战教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...