Vue前端项目部署的三种方案

一、项目打包

  • 我们开发用的脚手架其实就是一个微型服务器,用于:支撑开发环境、运行代理服务器等。
  • 打包完的文件中不存在:.vue.jsx.less 等文件,而是:htmljscss
  • 打包后的文件,不再借助脚手架运行,而是需要部署到服务器上运行。
  • 打包前,请务必梳理好前端项目的 ajax 封装(请求前缀、代理规则等)

二、使用node本地服务器部署

好处: 在一个局域网内,任意一个设备都可以通过ip访问项目

2.1. 搭建一个node后台服务

  • 新建一个文件夹my_server

在这里插入图片描述

  • 初始化package.jsoncmd执行npm init -y

在这里插入图片描述

  • 安装插件express(是一个快速搭建服务的插件)
npm i express

在这里插入图片描述

  • my_server目录下新建server.js,代码如下:
// 引入express
const express = require("express");
// 配置端口号
const PORT = 8088;
// 创建一个app服务实例
const app = express();
// 配置静态资源
app.use(express.static(__dirname + "/public"));

// 绑定端口监听
app.listen(PORT, () => {
  console.log(`本地服务器启动成功,http://localhost:${PORT}`);
});
  • my_server目录下新建public文件夹(用于存放打包后的index.html、js、css

  • 项目目录结构如下:

在这里插入图片描述

2.2. 将vue项目打包成dist文件

  • vue项目打包
npm run build
  • 打包后的dist文件如下

在这里插入图片描述

2.3. 将dist文件下面的资源交给express托管

  • 2.2打包后的dist目录下面的文件复制到my_server下面的public目录下

在这里插入图片描述

2.4. 启动node服务

node .\server.js

在这里插入图片描述

2.5. 访问http://localhost:8088即可看到你的项目页面

在这里插入图片描述

2.6. 解决history路由跳转后,刷新浏览器,页面报404的问题

出现原因:history路由在部署上去之后,前端跳转的路由会被认定为是/xxxxget请求

2.6.1. 方式一:将路由模式由history改为hash

const router = new VueRouter({
  mode: 'hash', // history改为hash
  base: process.env.BASE_URL,
  routes
})

在这里插入图片描述

2.6.2. 方式二:在server.js中将所有的请求匹配都返回index.html

// 将所有的请求匹配都返回index.html,将接口处理转交给js处理
app.get("*", (req, res) => {
  res.sendFile(__dirname, "/public/index.html");
});

2.6.2. 方式三:使用第三方的插件connect-history-api-fallback

  • 安装插件
npm i connect-history-api-fallback
  • 引入插件
// history路由刷新404解决
const history = require("connect-history-api-fallback");
  • 配置插件(必须放到配置静态资源之前)
// 必须放到配置静态资源之前
app.use(history());
// 配置静态资源
app.use(express.static(__dirname + "/public"));

2.7. 解决请求代理跨域的问题

出现原因:我们在本地npm run serve/dev的时候,vue-cli会帮我们启动一个代理服务器,但是打包以后,浏览器直接运行js、css、html,是没有代理服务器的,这个时候需要有一个插件去充当代理服务器的角色

  • 安装插件:http-proxy-middleware
npm i http-proxy-middleware
  • 引入插件
// 引入http代理服务器插件
const { createProxyMiddleware } = require("http-proxy-middleware");
  • 配置代理服务器
// 配置代理服务器
app.use(
  "/api",
  createProxyMiddleware({
    target: "http://www.example.org/secret",
    changeOrigin: true,
    pathRewrite: { "^/api": "" },
  })
);

三、nginx服务器部署

3.1. nginx 简介

Nginx(发音为“engine-x”)是一款高性能的 HTTP 服务器和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx最初由 lgor Sysoev 编写,于 2004年发布。它以其高性能、高稳定性、丰富的功能集和低系统资源消耗而闻名,主要功能有:

  • 反向代理
  • 负载均衡
  • 静态内容服务
  • HTTP/2 支持
  • SSL/TLS 支持
  • 高速缓存

3.2. nginx的下载

下载地址:http://nginx.org

在这里插入图片描述

在这里插入图片描述

3.3. 使用nginx部署前端项目

  • 将下载下来的nginx解压,并打开

在这里插入图片描述

  • 打开conf文件目录下面的nginx.conf

在这里插入图片描述
在这里插入图片描述

  • 我们找到html文件夹

在这里插入图片描述

  • 把打包后的dist文件目录下面的文件放到html目录

在这里插入图片描述

  • 运行nginx.exe

在这里插入图片描述

  • 浏览器访问http://localhost:80即可看到你的项目
    在这里插入图片描述

3.4. 解决history路由跳转后,刷新浏览器,页面报404的问题

出现原因:history路由在部署上去之后,前端跳转的路由会被认定为是/xxxxget请求

  • 打开nginx.conf文件,添加如下代码
try_files $uri $uri/ /index.html; # 解决刷新404

在这里插入图片描述

3.5. 解决接口代理问题

  • 打开nginx.conf文件,添加如下代码
location /dev/ {
   # 设置代理目标
   proxy_pass http://www.example.org/secret
}

在这里插入图片描述

3.6. 重启nginx

  • 找到任务管理器,关闭nginx进程
    在这里插入图片描述

  • 重新双击nginx.exe启动

3.7. 浏览器访问http://localhost:80即可解决3.4和3.5的问题

四、云服务器部署

4.1. 购买云服务器获取公网ip

阿里云、腾讯云都可以购买,购买完成可以获取到公网ip

4.2. 使用Xshell连接你的公网ip

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 用户名默认 root

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3. 使用Xftp连接你的公网ip

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.4. 通过Xftp将打包后的dist文件下面的静态资源放置到云服务器

  • var下面新建文件夹 sph(用来放置你的静态资源存放地址)

在这里插入图片描述

4.5. 使用Xshell安装nginx

yum install nginx

在这里插入图片描述

  • 输入y回车

在这里插入图片描述

  • 出现Complete说明安装成功

在这里插入图片描述

4.6. Xftp配置nginx.conf

找到etc/nginx
在这里插入图片描述

  • 配置nginx.config

在这里插入图片描述

在这里插入图片描述

4.7. Xsheel启动nginx

service nginx start

4.8. 浏览器输入 http://你的公网ip就可以访问你的项目了

浏览器输入 http://你的公网ip就可以访问你的项目了

在这里插入图片描述

4.9. 如果觉得ip不好看,可以买个域名和自己的公网ip绑定

  • 31
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Vue.js前端开发基础与项目实战PDF》是一本关于Vue.js前端开发的实用教程。本书共分为两个部分,前半部分是关于Vue.js基础知识的介绍,后半部分通过实战项目的方式加深读者对Vue.js的理解与应用。 在前半部分,本书首先介绍了Vue.js的基本概念和原则,包括Vue实例、模板语法、计算属性、指令、生命周期等。读者通过这些基础知识的学习,能够了解Vue.js的基本工作原理,掌握Vue.js的基本语法和核心功能。 后半部分,本书通过一个完整的实战项目,引导读者将前半部分所学知识运用于实践。项目从需求分析、项目搭建到页面设计、数据交互等方面进行了详细的讲解。读者通过跟随实战项目的步骤,能够从中学会如何使用Vue.js构建一个完整的前端应用。 《Vue.js前端开发基础与项目实战PDF》的特点在于其结合了理论和实践,让读者既能够理解Vue.js的基本原理和语法,又能够通过实战项目的方式进行实际操作。这种结合使得读者可以更好地掌握Vue.js的开发技巧,提升自己的前端开发能力。 总之,《Vue.js前端开发基础与项目实战PDF》是一本适合前端开发初学者的实用教程,通过学习本书,读者能够系统地了解和掌握Vue.js的开发技术和应用,为自己的前端开发之路奠定坚实的基础。 ### 回答2: "vue.js前端开发基础与项目实战pdf" 是一本关于Vue.js前端开发的书籍,涵盖了基础知识和实战经验。该书以提供全面详细的教程和示例代码为目标,可用于初学者和有一定经验的开发者。 在基础部分,该书讲解了Vue.js的基本概念和特点,包括Vue.js的生命周期、组件和指令的使用方法、数据绑定和事件处理等。读者将学会如何搭建Vue.js项目,包括使用Vue CLI进行项目初始化和依赖管理,以及使用Webpack进行模块化开发和打包。 在项目实战部分,该书提供了多个实际案例供读者学习和实践。这些案例涵盖了常见的前端开发需求,如用户登录认证、数据可视化、实时通信等。每个案例都由浅入深地介绍了解决方案和实现细节,读者可以从中学习到实际项目开发中的技巧和经验。 此外,该书还介绍了Vue.js的常用插件和工具库,如Vue Router、Vuex、Element UI等,以及与后端API交互和服务器部署等相关内容。读者可以根据自己的需求选择合适的工具和技术栈,提高项目开发的效率和质量。 总之,"vue.js前端开发基础与项目实战pdf"是一本全面介绍Vue.js前端开发的教程书籍,适合想要学习Vue.js的开发者。通过学习该书,读者可以掌握Vue.js的基础知识,提升前端开发技能,并能够应用Vue.js开发实际项目。 ### 回答3: 《vue.js前端开发基础与项目实战pdf》是一本介绍Vue.js前端开发基础及实战项目的电子书籍。 Vue.js是一款流行的JavaScript框架,用于构建用户界面。它采用了MVVM(Model-View-ViewModel)架构模式,使开发者能够快速构建高性能的单页面应用程序。本书通过详细的讲解和实例演示,系统地介绍了Vue.js基础知识和开发实践。 首先,本书从Vue.js的概述入手,介绍了Vue.js的特点和优势,并介绍了其与其他流行框架的比较。接着,本书详细介绍了Vue.js的基本语法、组件和指令,以及其数据绑定、事件处理、过滤器和表单验证等常用功能。读者可以通过学习这些基础知识,快速掌握Vue.js的开发方法和技巧。 然后,本书通过实战项目来帮助读者更好地理解和应用Vue.js。这些项目包括购物车应用、电影列表和用户管理系统等,涵盖了常见的业务场景。每个项目都有详细的代码实现和步骤说明,读者可以根据实际需求进行修改和扩展,提高自己的开发能力。 总的来说,《vue.js前端开发基础与项目实战pdf》是一本适合初学者和有一定经验的开发者的实用指南。通过学习这本书,读者可以从零开始掌握Vue.js的基础知识,并通过实践项目提升自己的开发能力。无论是对于想要学习Vue.js的新手,还是对于想要深入了解和运用Vue.js的开发者,都是一本值得推荐的书籍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值