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

前端项目部署

视频教程:前端项目部署

1、本地的服务器部署(node环境)

service.js

const express = require('express')
const app = express()
const history = require('connect-history-api-fallback')
const { createProxyMiddleware } = require('http-proxy-middleware')// 中间件设置静态资源目录
app.use(history())// 解决刷新404的问题:方法二 - 设置中间件
app.use(express.static(__dirname + '/public'))// 解决刷新404的问题:方法一 - 使用统配
// app.get('*', (req, res) => {
//   res.sendFile(__dirname + '/public/index.html')
// })// 解决前端部署以后,ajax 发送不成功的问题
/*** 关于 ajax 发送失败原因:* vue项目中,vue.config.js 或者 vite.config.js 配置了代理,这个代理在开发环境中可以用,是由脚手架提供的,* 但是打包完了以后,打包出来的是 html、css、js 纯文件,没有脚手架了,也就没有代理服务器对接口进行转发了,* 那 ajax 访问的地址也就是错误的*/
app.use('/dev',createProxyMiddleware({target: 'http://sph-api.atguigu.cn',changeOrigin: true,pathRewrite: { '^/dev' : '' }})
)app.listen(3000, () => {console.log('服务启动成功。。。')
})

将打包出来的文件放到 node 环境下,指定的静态资源目录下,访问的时候,出现两个问题:

1、页面刷新 404

解决办法:
1)配置 vue 路由模式,将 history 模式改为 hash 模式,但是这种模式,地址栏比较丑,一般网站不会使用这种模式
2)node 环境修改,使用

 app.get('*', (req, res) => {res.sendFile(__dirname + '/public/index.html')})

3)node 环境修改 - 使用 connect-history-api-fallback 中间件

const history = require('connect-history-api-fallback')
app.use(history())
2、ajax 请求失效了

出现这种情况的原因是:开发环境中,由脚手架提供了代理服务器,由代理服务器将接口进行转发。
而在生产环境中,使用的是打包出来的 html、css、js 这种纯文件,没有脚手架了,也就没有代理服务器对接口进行转发了,所以 ajax 访问的地址是错误的了。

vite.config.js

server: {proxy: {[env.VITE_APP_BASE_API]: {// 获取数据的服务器地址target: env.VITE_SERVE,// 是否允许跨域changeOrigin: true,// 路径重写rewrite: (path) => path.replace(/^\/api/, '')},}},

解决办法:
1)使用 http-proxy-middleware 中间件
service.js

const { createProxyMiddleware } = require('http-proxy-middleware')
app.use('/dev',createProxyMiddleware({target: 'http://sph-api.atguigu.cn',changeOrigin: true,pathRewrite: { '^/dev' : '' }})
)

如何解决?

2、nginx 服务器部署

  • 将打包出来的文件,放到对应的目录
  • 修改 nginx.config 文件
    nginx.config
...
location / {root	D:\dist		# root 指向打包的文件所在的目录index	index.html 	index.htm	# 默认访问的文件try_files	$uri/ $url/ /index.html;	# 解决刷新 404(没有办法匹配资源时,匹配 index.html)
}location /dev/ {# 设置代理目标proxy_pass	http://sph-api.atguigu.cn/;	# 解决 ajax 地址错误的问题
}

3、云服务器部署

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • YOLOv8加载模型的3种方式说明:区别和适用场景是什么?
  • 1688 API 接口:电商系统的纽带
  • C++ STL初阶(9):list 中关于reverse_iterator的实现
  • Golang | Leetcode Golang题解之第331题验证二叉树的前序序列化
  • 【树上点差分、LCA】Max Flow P
  • linux的wps字体问题解决方法汇总
  • 鸿蒙(API 12 Beta3版)【HDR Vivid视频录制】 音视频编码
  • 三防平板满足多样化定制为工业领域打造硬件解决方案
  • 斜坡函数在PLC中的应用
  • 使用Adobe Photoshop CS5给图片加水印
  • windows中如何进入redis控制台?
  • Query @azure/openai with images?
  • 【无线通信发展史③】万有引力定律的推导前奏1.0,带你先了解离心力—向心力的知识点
  • sqlserver给整张表修改某一字段为uuid
  • GPT-4o:开启多模态AI识别新纪元
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 345-反转字符串中的元音字母
  • emacs初体验
  • ES6 ...操作符
  • Gradle 5.0 正式版发布
  • IP路由与转发
  • JavaScript学习总结——原型
  • JS字符串转数字方法总结
  • mysql 5.6 原生Online DDL解析
  • Redis的resp协议
  • Terraform入门 - 3. 变更基础设施
  • Tornado学习笔记(1)
  • 关于for循环的简单归纳
  • 十年未变!安全,谁之责?(下)
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​2021半年盘点,不想你错过的重磅新书
  • #162 (Div. 2)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (论文阅读30/100)Convolutional Pose Machines
  • (四)Controller接口控制器详解(三)
  • (算法)前K大的和
  • (五)IO流之ByteArrayInput/OutputStream
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Core中的去虚
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 材料检测系统崩溃分析
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net网站发布-允许更新此预编译站点
  • .net中调用windows performance记录性能信息
  • .net专家(高海东的专栏)
  • @Conditional注解详解
  • @Transactional类内部访问失效原因详解
  • [ solr入门 ] - 利用solrJ进行检索
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)