【Nginx 】Nginx 部署前端 vue 项目
1. 项目打包
1.1 安装依赖
在项目部署之前,确保开发环境中已安装Node.js和npm,这是运行Vue项目的基础。通过执行npm install
命令,可以安装项目所需的所有依赖。这一步是打包流程的前提,确保了后续编译的顺利进行。
根据npm的官方数据,npm install
命令在安装依赖时,会根据package.json
文件中列出的依赖项进行下载和安装,这个过程通常需要联网操作,并且依赖于npm仓库的响应速度。在网络状况良好的情况下,安装过程可以顺利完成。
1.2 编译项目
项目依赖安装完成后,接下来需要编译Vue项目。编译过程是通过执行npm run build
命令来完成的,该命令会触发Vue CLI中的构建脚本,将源代码转换为浏览器可以理解的静态资源。
编译过程中,Webpack作为模块打包器,会根据配置文件vue.config.js
中的规则,对项目中的JavaScript、CSS、图片等资源进行打包和优化。这个过程包括代码的压缩、合并、分割等多个步骤,以确保最终生成的静态资源既高效又轻量。
根据Vue CLI的官方文档,编译后的资源会被放置在项目根目录下的dist
文件夹中。这个文件夹包含了所有用于生产环境的静态文件,如HTML、CSS、JavaScript等。这些文件是部署到Nginx服务器上的核心内容。
在编译过程中,还可以通过添加环境变量来指定不同的构建环境,例如开发环境、测试环境和生产环境。这样可以确保在不同环境下构建的资源具有相应的优化和配置。
2. 安装Nginx
2.1 Ubuntu/Debian系统
在Ubuntu或Debian系统上安装Nginx通常涉及以下步骤,这些步骤可以确保用户能够快速且正确地安装Nginx服务器。
- 软件更新:首先,执行
sudo apt-get update
命令来更新本地软件包索引。这一步是必要的,因为它确保了在安装过程中能够获取到最新的软件包版本。 - 安装Nginx:通过执行
sudo apt-get install nginx
命令来安装Nginx。这个过程会自动处理依赖关系,并安装Nginx及其所需的所有组件。 - 启动服务:安装完成后,使用
sudo systemctl start nginx
命令启动Nginx服务。这是确保Nginx能够正常工作的第一步。 - 验证安装:为了验证Nginx是否正确安装和运行,可以通过访问
http://localhost
或服务器的IP地址来查看Nginx的欢迎页面。如果页面加载成功,说明Nginx已经成功运行。
2.2 CentOS/RHEL系统
在CentOS或RHEL系统上安装Nginx的过程与Ubuntu/Debian略有不同,主要体现在软件包管理器的使用上。
- 软件更新:首先,执行
sudo yum update
命令来更新系统上的软件包。这一步确保了系统上的软件包列表是最新的。 - 安装Nginx:通过执行
sudo yum install nginx
命令来安装Nginx。这个命令会处理所有的依赖关系,并安装Nginx服务器。 - 启动服务:使用
sudo systemctl start nginx
命令来启动Nginx服务。这一步是确保Nginx能够响应网络请求的关键。 - 验证安装:与Ubuntu/Debian系统一样,可以通过访问
http://localhost
或服务器的IP地址来检查Nginx的欢迎页面。如果页面能够成功加载,这表明Nginx已经正确安装并运行。
在两种系统中,安装Nginx的过程都相对简单,主要区别在于使用的软件包管理器不同。无论是在Ubuntu/Debian还是CentOS/RHEL系统上,用户都可以遵循上述步骤来安装和验证Nginx服务器。
3. 配置Nginx
3.1 创建Nginx配置文件
创建Nginx配置文件是部署Vue项目的关键步骤之一。以下是一个基本的配置文件示例,它定义了服务器如何响应对Vue应用的请求。
server {listen 80;server_name your_domain_or_ip;root /var/www/my-vue-app/dist;index index.html;location / {try_files $uri $uri/ /index.html;}location ~* .(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|otf)$ {expires max;log_not_found off;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}
}
在这个配置中,listen 80;
表示服务器监听80端口,server_name your_domain_or_ip;
应替换为你的域名或IP地址。root /var/www/my-vue-app/dist;
指定了Vue项目打包后的静态文件存放位置。location /
块中的 try_files
指令确保了Vue的前端路由能够正确工作,即使在刷新或直接访问非根路径时。
3.2 启用配置文件
启用配置文件通常涉及两个步骤:创建配置文件的符号链接,然后重新加载Nginx配置。
sudo ln -s /etc/nginx/sites-available/my-vue-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
首先,使用 ln -s
创建一个符号链接,将你的配置文件链接到 sites-enabled
目录。接着,使用 nginx -t
测试配置文件是否有语法错误。如果没有错误,使用 systemctl restart nginx
命令重启Nginx服务以应用新的配置。
3.3 测试并重启Nginx
在应用了新的Nginx配置之后,需要进行测试以确保一切正常工作。这包括访问Vue应用的主页,以及尝试访问应用中的各个路由,确保它们都能正确加载。
- 访问应用:在浏览器中输入
http://your_domain_or_ip
,检查Vue应用是否能够正确加载。 - 检查路由:尝试访问应用的不同路由,确保前端路由跳转能够正常工作。
- 查看日志:如果遇到问题,查看Nginx的错误日志可以提供有用的信息。日志文件通常位于
/var/log/nginx/error.log
。
如果一切正常,你的Vue应用现在应该已经成功部署在Nginx服务器上了。如果遇到问题,仔细检查配置文件中的指令,确保没有遗漏或错误。
4. 部署Vue项目
4.1 将打包文件上传到服务器
将Vue项目打包后生成的dist
目录上传至服务器是部署过程中的关键步骤。根据服务器的操作系统和配置,可以使用多种方法进行上传。
- 使用
scp
或sftp
:这些是Linux系统常用的文件传输协议,可以安全地将文件从本地传输到远程服务器。例如,使用scp -r dist/ username@server_ip:/path/to/remote/
命令。 - 使用
rsync
:该工具可以同步文件和目录,并且可以保留文件的权限和时间戳,适合于增量备份和镜像。命令示例:rsync -avz --progress dist/ username@server_ip:/path/to/remote/
. - 使用FTP客户端:如FileZilla等,这些工具提供了图形界面,使得文件传输更加直观和便捷。
一旦文件上传完成,需要确保Nginx可以正确地读取和提供这些文件。这通常意味着需要将文件上传到Nginx配置中指定的root
目录。
4.2 设置文件权限
在Linux系统中,文件权限对于服务器的运行至关重要。Nginx服务通常以非root用户运行,因此需要确保该用户有权访问和提供Vue项目文件。
- 使用
chown
命令更改文件的所有者,例如:sudo chown -R www-data:www-data /path/to/dist/
,这里www-data
是Nginx进程通常运行的用户名,这可能因安装而异。 - 使用
chmod
命令设置适当的文件权限,以确保Nginx可以读取文件。通常,755
(读、执行权限)是目录的推荐权限,而644
(读、写权限)是文件的推荐权限。命令示例:sudo chmod -R 755 /path/to/dist/
。 - 验证权限设置:使用
ls -l /path/to/dist/
命令检查文件和目录的权限,确保它们符合预期。
正确设置文件权限是确保Vue项目能够被Nginx正确服务的前提。权限不足可能导致文件无法读取,从而影响网站的访问。
5. 配置SSL(可选)
5.1 安装Certbot
Certbot 是一个开源工具,由 Let’s Encrypt 提供,用于自动化获取和续订 SSL/TLS 证书的过程。安装 Certbot 的步骤通常如下:
-
对于基于 Debian 的系统(如 Ubuntu),使用以下命令安装:
sudo apt-get update sudo apt-get install certbot python-certbot-nginx
-
对于基于 Red Hat 的系统(如 CentOS),使用以下命令安装:
sudo yum update sudo yum install certbot python-certbot-nginx
-
安装完成后,可以使用 Certbot 与 Nginx 集成,自动化 SSL 证书的获取和配置过程。
5.2 获取证书并配置Nginx
使用 Certbot 获取 SSL 证书并自动配置 Nginx 的步骤如下:
-
运行 Certbot 命令,指定 Nginx 作为插件,并提供你的域名:
sudo certbot --nginx -d your_domain_or_ip
-
Certbot 将自动验证你的域名,获取 SSL 证书,并更新 Nginx 配置以使用证书。
-
配置文件通常更新在
/etc/nginx/sites-available/
目录下,Certbot 会创建一个包含 SSL 配置的文件。
5.3 自动更新证书
Let’s Encrypt 证书的有效期为 90 天,因此需要定期更新。Certbot 提供了自动更新的功能:
-
设置自动更新任务,通常通过 cron 定时任务实现:
echo "0 3 * * * /usr/bin/certbot renew --quiet" | sudo tee -a /etc/crontab > /dev/null
-
该命令会在每天凌晨 3 点运行 Certbot 以更新证书,确保 SSL 证书始终保持有效状态。
-
为了确保 Nginx 配置在证书更新后能够正确加载,可以在更新证书后重启 Nginx:
sudo systemctl restart nginx
-
通过这种方式,即使在证书更新后,前端 Vue 项目也能够继续通过 HTTPS 安全地提供服务。
6. 测试部署
6.1 访问测试
部署完成后,通过访问服务器的IP地址或绑定的域名来测试Vue项目是否能够正常加载。检查页面元素、脚本和样式是否正常工作,确保没有资源加载错误。
- 浏览器兼容性:在不同的浏览器上进行测试,包括但不限于Chrome、Firefox、Safari和Edge,确保前端项目在所有主流浏览器上都能正常显示和交互。
- 响应式测试:验证页面在不同设备和分辨率上的响应式布局,确保移动端和桌面端用户都能获得良好的浏览体验。
6.2 性能测试
对Vue项目进行性能测试,包括页面加载时间、资源加载时间、白屏时间等关键性能指标的测试。
- 性能监控工具:使用Google Lighthouse、WebPageTest等工具对项目进行性能评估,根据测试结果优化项目性能。
- 资源优化:根据测试结果,对项目中的图片、脚本和样式进行压缩和优化,减少HTTP请求次数,提高加载速度。
6.3 安全性测试
验证部署的Vue项目是否符合安全标准,包括但不限于跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等常见的网络安全威胁。
- 安全审计:进行代码审计和安全漏洞扫描,确保项目中没有安全漏洞。
- HTTPS配置:确保项目通过HTTPS协议提供服务,使用SSL/TLS证书加密数据传输,保护用户数据安全。
6.4 备份与恢复
为防止数据丢失和系统故障,定期对项目文件和数据库进行备份,并确保能够快速恢复。
- 备份策略:制定备份计划,包括备份频率、备份存储位置和备份数据的保留时间。
- 恢复演练:定期进行数据恢复演练,验证备份数据的有效性和恢复流程的可行性。
相关文章:
【Nginx 】Nginx 部署前端 vue 项目
1. 项目打包 1.1 安装依赖 在项目部署之前,确保开发环境中已安装Node.js和npm,这是运行Vue项目的基础。通过执行npm install命令,可以安装项目所需的所有依赖。这一步是打包流程的前提,确保了后续编译的顺利进行。 根据npm的官…...
DO-254航空标准飞行器电机控制器设计注意事项
DO-254航空标准飞行器电机控制器设计注意事项 1.核心要求1.1 设计保证等级(DAL)划分1.2生命周期管理1.3验证与确认2.电机控制器硬件设计的关键注意事项2.1需求管理与可追溯性2.2冗余与容错设计2.3验证与确认策略2.4元器件选型与管理2.5环境适应性设计2.6文档与配置管理3.应用…...
C# Unity 唐老狮 No.3 模拟面试题
本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体…...
视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决
EasyDSS视频直播点播平台是一个功能全面的系统,提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用,能够接收无人机设备的实时视频流,实现无人机视频推流直播和巡检等多种应用。 最近&…...
【分布式锁通关指南 05】通过redisson实现分布式锁
引言 在上个篇章中,我们通过redis手撸了一套分布式锁,但是最后也提到了它依然存在不完美的地方。那么有没有更简单和靠谱的实现方式。当然有,在本篇章中,我们将讲解如何使用redisson框架实现分布式锁以及理解它的源码。 什么是red…...
路劲家园大学:教育创新赋能社区人文生态建设
2025年2月10日至13日,路劲家园大学集训活动成功举办,众多教育领域学者与一线教师齐聚,通过专题研讨、教学展示、技术探索等多元形式,为家园大学注入全新活力,探索教育创新发展之路。 双院揭牌 构建社区美育新生态 集训…...
【前端进阶】10 掌握前端框架模板引擎的实现原理
前端框架模板引擎的实现原理 当用户对页面进行操作,页面内容更新,我们要实现的功能包括 如果使用前端框架 如果使用数据驱动的方式,还可以让逻辑与UI解耦的方式,提升代码的可维护性,其中的数据绑定、事件绑定等功能&a…...
Spring Boot 接口 JSON 序列化优化:忽略 Null 值的九种解决方案详解
一、针对特定接口null的处理: 方法一:使用 JsonInclude 注解 1.1 类级别:在接口返回的 DTO 类或字段 上添加 JsonInclude 注解,强制忽略 null 值: 类级别:所有字段为 null 时不返回 JsonInclude(Js…...
Golang 中如何实现一个强大的重试机制,来解决瞬态错误
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
冒泡排序算法优化
一 概述 冒泡排序是一种简单的交换排序算法,其核心思想是通过相邻元素比较和交换将最大元素逐步移动到数组末尾。 二、基础冒泡排序 void bubbleSort(int arr[], int n) { for (int i = 0; i < n-1; i++) { for (int j = 0; j < n-i-1; j++) { if…...
2025年Linux主力系统选择指南:基于最新生态的深度解析(附2025年发行版对比速查表)
Linux发行版生态在2025年持续演进,既有经典系统的迭代升级,也有新兴项目的崛起。本文结合最新行业动态,从个人用户到企业场景,梳理主力系统选择策略,助你找到最适合的Linux发行版。 一、新手友好型:平滑过渡…...
聊聊大数据测试开展方向有哪些?
目录 一、功能性测试与验证 二、数据的更新实时性测试 三、数据响应的及时性测试 四、算法的效果验证 五、AI算法系统的线上稳定性保证 大数据测试实施建议 大数据测试和传统软件测试有什么不同呢?可能涉及数据量大、多样性、处理速度这些特点。然后ÿ…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数 - 详解(11)
详解(11) 初始化配置解析上下文 senv environ;ngx_memzero(&conf, sizeof(ngx_conf_t));/* STUB: init array ? */conf.args ngx_array_create(pool, 10, sizeof(ngx_str_t));if (conf.args NULL) {ngx_destroy_pool(pool);return NULL;}conf.te…...
AI与机器学习、深度学习在气候变化预测中的应用
全球气候变化是现代社会面临的最重要的环境挑战之一,影响了气温、降水、海平面、农业、生态系统等多个方面。气候变化的驱动因素主要包括温室气体排放、气溶胶浓度、火灾频发、海冰融化、叶绿素变化、农业变化和生态环境变化等。这些因素在全球范围内交互作用&#…...
湖仓一体概述
湖仓一体之前,数据分析经历了数据库、数据仓库和数据湖分析三个时代。 首先是数据库,它是一个最基础的概念,主要负责联机事务处理,也提供基本的数据分析能力。 随着数据量的增长,出现了数据仓库,它存储的是…...
Go红队开发—语法补充
文章目录 错误控制使用自定义错误类型错误包装errors.Is 和 errors.Aspanic捕获、recover 、defer错误控制练习 接口结构体实现接口基本类型实现接口切片实现接口 接口练习Embed嵌入文件 之前有师傅问这个系列好像跟红队没啥关系,前几期确实没啥关系,因为…...
【VSCode】VSCode下载安装与配置极简描述
VSCode 参考网址:[Visual Studio Code Guide | GZTime’s Blog]. 下载安装 下载地址:Download Visual Studio Code - Mac, Linux, Windows. 注:推荐不更改安装位置,并且在附加任务中“其他”中的四项全部勾选,即将用…...
揭开人工智能中 Tokens 的神秘面纱
揭开人工智能中 Tokens 的神秘面纱 在人工智能,尤其是自然语言处理(NLP)领域,"tokens" 是一个频繁出现且至关重要的概念。对于理解语言模型如何处理和理解人类语言,tokens 起着基础性的作用。那么ÿ…...
Node.js安装与学习的简单记录
1. 下载与安装 参考: 2024最新版Node.js下载安装及环境配置教程【保姆级】 Node.js中文网 选择长期维护版: 18.19.0,Windows 安装包 (.msi) 64位。 安装选项都默认,安装路径可以改一下。 查看node版本:node -v v18.19.0 查看npm版…...
Spring也能接入Deepseek?
引言 最近DeepSeek可谓风光无限,AI可谓是目前互联网最火热的几个名词,我也一直在关注他的发展,从以前的人工智障,到chatGPT的高不可攀(价格太贵),再到DeepSeek的横空出世,才看到了A…...
STM32 物联网智能家居 (七) 设备子系统--风扇控制
STM32 物联网智能家居 (七) 设备子系统–风扇控制 一、概述 下面我们来讲解设备子系统中的风扇控制,这是我们设备子系统中的最后一章,相信前面大家一家掌握了这种架构分层的编程思想,后续会很容易将程序进行扩展和开发。 上一节我们介绍了OLED屏幕的编程思想,有很多小伙…...
MySQL—Keepalived+MySQL双主复制实现MySQL高可用
Keepalived原理: Keepalived 的原理主要基于虚拟路由冗余协议(VRRP,Virtual Router Redundancy Protocol)、健康检查机制和负载均衡机制,以下为你详细介绍: VRRP 协议实现高可用:VRRP 是 Keep…...
CSS 使用white-space属性换行
一、white-space属性的常见值 * 原本格式: 1、white-space:normal 默认值,空格和换行符会被忽略过滤掉;宽度不够时文本会自动换行 * 宽度足够时,normal 处理后的格式 * 宽度不够时, normal 处理后的格式 2、white-spa…...
【数据结构第十六节】实现链式结构二叉树(详细递归图解—呕心沥血版!)
必须有为成功付出代价的决心,然后想办法付出这个代价。云边有个稻草人-CSDN博客 这节课挺抽象(苦笑),没事,我会帮你!干就完了! (目录在路上) 正文开始—— 引言 用链表…...
mysqldump 参数详解
mysqldump 是一个用于备份 MySQL 数据库的工具。它可以生成一组 SQL 语句,这些语句可以用来重现原始数据库对象定义和表数据。以下是一些常用的 mysqldump 参数及其详细解释: 常用参数 基本参数 --host=host_name, -h host_name: 指定 MySQL 数据库主机地址,默认为 localh…...
Vue-Flow绘制流程图(Vue3+ElementPlus+TS)简单案例
本文是vue3Elementplusts框架编写的简单可拖拽绘制案例。 1.效果图: 2.Index.vue主代码: <script lang"ts" setup> import { ref, markRaw } from "vue"; import {VueFlow,useVueFlow,MarkerType,type Node,type Edge } fro…...
【11】RUST使用cargo组织crate
文章目录 使用cargo组织crate重导出编译文档生成测试 cargo组织工作空间 TODOcrate.io账号 TODO暂时不看发布crate 使用cargo组织crate 重导出 在模块顶部使用pub use self::重导出,方便使用模块时候直接使用use mod_X::xxx。从而隐藏crate内部模块的结构。方便向…...
开放标准(RFC 7519):JSON Web Token (JWT)
开放标准:JSON Web Token 前言基本使用整合Shiro登录自定义JWT认证过滤器配置Config自定义凭证匹配规则接口验证权限控制禁用session缓存的使用登录退出单用户登录Token刷新双Token方案单Token方案 前言 JSON Web Token (JWT) 是一种开放标准…...
Linux上用C++和GCC开发程序实现不同MySQL实例下单个Schema之间的稳定高效的数据迁移
设计一个在Linux上运行的GCC C程序,同时连接两个不同的MySQL实例,两个实例中分别有两个Schema的表结构完全相同,复制一个实例中一个Schema里的所有表的数据到另一个实例中一个Schema里,使用以下快速高效的方法,加入异常…...
【Windows】Windows常用命令
目录 文件和目录相关命令系统信息查看命令网络相关命令进程管理命令磁盘管理命令用户和权限管理命令计划任务和脚本命令其他常用命令1. 文件和目录相关命令 命令作用示例cd切换目录cd C:\Usersdir列出目录内容dirmkdir创建新目录mkdir NewFolderrmdir删除空目录rmdir OldFolder…...
趣讲TCP三次握手
一、TCP三次握手简介 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP连接中,只有两方进行通信,它使用校验和、确认和重传机制来保证数据的可靠传输。…...
vue3中的标签属性中的Ref
用在普通 DOM 标签上,获取的是 DOM 节点: 当你在一个普通的 HTML 标签(例如 <div>、<input> 等)上使用 ref 属性时,ref 会返回该 DOM 元素的直接引用。这使得你可以在 JavaScript 代码中方便地访问和操作…...
vue3.2 + vxe-table4.x 实现多层级结构的 合并、 展开、收起 功能
<template><div style"padding: 20px"><vxe-table border :data"list" :height"800" :span-method"rowspanMethod"><vxe-column title"一级类目" field"category1"><template #defaul…...
DeepSeek R1 + 飞书机器人实现AI智能助手
效果 TFChat项目地址 https://github.com/fish2018/TFChat 腾讯大模型知识引擎用的是DeepSeek R1,项目为sanic和redis实现,利用httpx异步处理流式响应,同时使用buffer来避免频繁调用飞书接口更新卡片的网络耗时。为了进一步减少网络IO消耗&…...
Java虚拟机监控工具
在Java应用高频出现的OOM、卡顿、线程阻塞等问题背后,往往隐藏着复杂的JVM运行机制异常。本文将通过真实案例场景,演示6款主流工具的组合使用技巧,助你快速定位90%以上的线上故障。 一、基础监控三板斧 1. jstat:GC性能透视仪 …...
利用python和gpt写一个conda环境可视化管理工具
最近在学习python,由于不同的版本之间的差距较大,如果是用环境变量来配置python的话,会需要来回改,于是请教得知可以用conda来管理,但是conda在管理的时候老是要输入命令,感觉也很烦,于是让gpt帮…...
软件工程----统一过程模型RUP
统一过程RUP是一种以用例驱动、以体系结构为核心、迭代和增量的软件开发过程,由UML方法和工具支持,广泛应用于各类面向对象项目。 RUP本身支持可裁剪性,可应付给类领域软件和不同的项目规模 RUP蕴含了大量优秀的实践方法,如&…...
Spring的MutipartFile 会直接将流转成文件存放在临时目录嘛?
Spring 的 MultipartFile 默认会将上传的文件存储到临时目录。具体行为取决于底层的 MultipartResolver 实现。常见的实现包括: 1. StandardServletMultipartResolver(默认实现) 如果使用的是 StandardServletMultipartResolver(…...
基于大数据的空气质量数据可视化分析系统
【大数据】基于大数据的空气质量数据可视化分析系统(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本系统的实践价值在于将大数据技术与空气质量监测相结合,为公众、研究机构和政府…...
一文了解:部署 Deepseek 各版本的硬件要求
很多朋友在咨询关于 DeepSeek 模型部署所需硬件资源的需求,最近自己实践了一部分,部分信息是通过各渠道收集整理,so 仅供参考。 言归正转,大家都知道,DeepSeek 模型的性能在很大程度上取决于它运行的硬件。我们先看一下…...
国内访问Github的四种方法(2025版)
声明:以下内容,仅供学习使用,不得他用。如有他用,与本文作者无关。 国内访问GitHub及下载文件的解决方案整理如下,结合最新技术方案和实测有效方法: 一、网络层解决方案 Hosts文件修改法 通过DNS查询工具…...
企业级AI办公落地实践:基于钉钉/飞书的标准产品解决方案
一、平台化AI的崛起:开箱即用的智能革命 2024年企业AI应用调研数据显示: 73%的中型企业选择平台标准产品而非自研头部SaaS平台AI功能渗透率达89%典型ROI周期从18个月缩短至3-6个月 核心优势对比: 维度自研方案平台标准产品部署周期6-12个…...
金融行业专题|某基金公司基于超融合信创平台支持人大金仓数据库的性能评测
随着“自主可控”在 IT 基础设施领域不断深化,数据库的国产化替代也被很多金融机构提上日程。为了保证性能,大部分国产数据库都基于信创架构的裸金属服务器部署。在国产虚拟化/超融合平台上,国产数据库性能表现如何?尤其是搭配信创…...
Python异常处理面试题及参考答案
目录 什么是 Python 中的异常?程序为什么需要异常处理机制? 解释 BaseException 和 Exception 的区别 Python 的异常处理与传统的错误代码返回机制相比有哪些优势? 列出至少 5 个 Python 内置异常类型并说明触发场景 语法错误 (SyntaxError) 与运行时异常 (Runtime Erro…...
Java 实现快速排序算法:一条快速通道,分而治之
大家好,今天我们来聊聊快速排序(QuickSort)算法,这个经典的排序算法被广泛应用于各种需要高效排序的场景。作为一种分治法(Divide and Conquer)算法,快速排序的效率在平均情况下非常高ÿ…...
【JavaSE-1】初识Java
1、Java 是什么? Java 是一种优秀的程序设计语言,人类和计算机之间的交流可以借助 Java 这种语言来进行交流,就像人与人之间可以用中文、英语,日语等进行交流一样。 Java 和 JavaScript 两者有关系吗? 一点都没有关系!!! 前端内容:HTML CSS JS,称为网页三剑客 2、JDK 下…...
JavaScript将:;隔开的字符串转换为json格式。使用正则表达式匹配键值对,并构建对象。多用于解析cssText为style Object对象
// 使用正则表达式匹配键值对,并构建对象 let string2Json(s)>{const r {};s.replace(/;/g, ;).replace(/\;/g, \n).replace(/:/g, :).replace(/\n/g, \n)//合并多个换行符.split(\n).forEach(item > {const [k, v] item.split(:);(k…...
lvgl运行机制分析
lv_timer_handler() 是 LVGL 的“心脏”:这个函数会依次做以下事情: 处理定时器(如动画、延迟回调)。 读取输入设备(如触摸屏、按键的状态)。 刷新脏区域(仅重绘屏幕上发生变化的区域…...
紧跟潮流,将 DeepSeek 集成到 VSCode
Visual Studio Code(简称 VSCode)是一款由微软开发的免费开源代码编辑器,自 2015 年发布以来,凭借其轻便、强大、且拥有丰富扩展生态的特点,迅速成为了全球开发者的首选工具。VSCode 支持多平台操作系统,包…...
Apache Tomcat RCE 稳定复现 保姆级!(CVE-2024-50379)附视频+POC
原文链接 Apache Tomcat 最新RCE 稳定复现分析 保姆级!!!附复现视频POC 前言 最近爆出 Apache Tomcat条件竞争导致的RCE,影响范围当然是巨大的,公司也及时收到了相关情报,于是老大让我复现,以…...