Vue项目打包部署总结

本文详细介绍了Vue项目从打包、同步到服务器、非域名根路径发布以及history模式部署的全过程。重点讲解了nginx配置,包括代理前端项目、处理非域名根路径发布和history模式下的404问题。此外,还提到了Vue项目打包后静态资源的处理策略,以及使用ssh key简化远程部署流程。
摘要由CSDN通过智能技术生成

本文发布于我的个人网站:http://wintc.top/article/29,转载请注明。

使用Vue做前后端分离项目时,通常前端是单独部署,用户访问的也是前端项目地址,因此前端开发人员很有必要熟悉一下项目部署的流程与各类问题的解决办法了。Vue项目打包部署本身不复杂,不过一些前端同学可能对服务器接触不多,部署过程中还是会遇到这样那样的问题。本文介绍一下使用nginx服务器代理前端项目的方法以及项目部署的相关问题,内容概览:

Vue项目打包发布问题汇总

一、准备工作——服务器和nginx使用

1. 准备一台服务器

我的是ubuntu系统,linux系统的操作都差不多。没有服务器怎么破?

如果你只是想体验一下,可以尝试各大厂的云服务器免费试用套餐,比如华为云免费试用,本文相关操作即是在华为云上完成的。不过如果想时常练练手,我觉得可以购买一台云服务器,比如上面的华为云或者阿里云都还挺可靠。我的个人网站就是部署在阿里云,你可以点击我的推广链接进行购买,近期有活动首次购买不到100块/年。

2. nginx安装和启动

轻装简行,这部分不作过多赘述,毕竟网上相关教程一大堆。

# 安装,安装完成后使用nginx -v检查,如果输出nginx的版本信息表明安装成功
sudo apt-get install nginx
# 启动
sudo service nginx start

启动后,正常情况下,直接访问 http://服务器ip 或 http://域名 (本文测试用的服务器没有配置域名,所以用ip,就本文而言,域名和ip没有太大区别)应该就能看到nginx服务器的默认页面了——如果访问不到,有可能是你的云服务器默认的http服务端口(80端口)没有对外开放,在服务器安全组配置一下即可。

Vue项目打包发布问题汇总

3. 了解nginx: 修改nginx配置,让nginx服务器代理我们创建的文件

查看nginx的配置,linux系统下的配置文件通常会存放在/etc目录下,nginx的配置文件就在/etc/nginx文件夹,打开文件/etc/nginx/sites-available/default(nginx可以有多个配置文件,通常我们配置nginx也是修改这个文件):

Vue项目打包发布问题汇总

可以看到默认情况下,nginx代理的根目录是/var/www/html,输入 http://服务器ip会访问这个文件夹下的文件,会根据index的配置值来找默认访问的文件,比如index.html、index.htm之类。

我们可以更改root的值来修改nginx服务代理的文件夹:

  1. 创建文件夹/www,并创建index.html,写入"Hello world"字符串
    mkdir /www
    echo 'Hello world' > /www/index.html​
  2. 修改root值为 /www
Vue.js项目部署时使用`history`模式主要是为了实现单页应用(SPA)的无刷新导航。`history`模式允许前端直接操作URL,而不涉及服务器端路由。在Vue项目中配置`history`部署通常需要以下几个步骤: 1. **设置HTML5 History API**: - 在你的`index.html`或主入口文件中添加 `<base>` 标签,指定应用程序的根路径,例如: ```html <base href="/" /> ``` 2. **配置Webpack**: - 使用Vue CLI的话,可以在`.vue-cli-service.config.js`中配置`routerMode`属性为`history`。如果手动配置,需要安装`vue-router`并配置`mode: 'history'`。 ```javascript module.exports = { // ...其他配置 configureWebpack: config => { if (process.env.NODE_ENV === 'production') { config.plugins.push(new HtmlWebpackPlugin({ hash: true, filename: '../dist/index.html', template: 'public/index.html', // 指定模板文件 minify: { removeComments: true, collapseWhitespace: true }, })) } config.devServer = { historyApiFallback: true, // 开启history fallback }; } }; ``` 3. **服务器配置**: - 在生产环境中,需要服务器支持`history`模式,通常意味着需要配置对所有非`'/index.html'`请求转发到`'/index.html'`。这依赖于你的服务器环境(如Express、Nginx等),你需要查阅相应的文档。 4. **处理浏览器兼容性和SEO**: - 对于旧版浏览器,可以使用`hashbang`(`#!`)代替`history`。现代浏览器一般能自动处理。 - 使用`prerender-spa-plugin`或类似工具预渲染静态页面,提升SEO。 **相关问题--:** 1. 如何解决Vue历史模式下刷新页面白屏的问题? 2. 为什么要在生产环境中开启historyApiFallback? 3. 怎么样让搜索引擎识别Vue的单页应用?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值