以我自己的项目为例子
- 在项目根路径下的
vue.config.js
里面配置部署应用包时的基本URLpublicPath
,不配置的话默认是publickPath:"/"
;
module.exports={publicPath:"/",};
vue-router
路由的base
和publickPath
,可以这样写:constrouter=newVueRouter({mode:'history',base:process.env.BASE_URL,routes})
打包完前端项目后需要将要打包好的dist里面的文件放到服务器上,然后再配置nginx
在服务器上(linux系统)配置nginx因为我的项目用的是腾讯云服务器(centos6.5),所以我就以这个举例子了
下载安装nginx参考:www.runoob.com/linux/nginx…
- 安装编译工具及文库
yum-yinstallmakezlibzlib-develgcc-clibtoolopensslopenssl-devel
[root@bogonsrc]#cd/usr/local/src/[root@bogonsrc]#wgethttp://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
[root@bogonsrc]#tarzxvfpcre-8.35.tar.gz
[root@bogonsrc]#cdpcre-8.35[root@bogonpcre-8.35]#./configure[root@bogonpcre-8.35]#make&&makeinstall
[root@bogonpcre-8.35]#pcre-config--version
[root@bogonsrc]#cd/usr/local/src/[root@bogonsrc]#wgethttp://nginx.org/download/nginx-1.18.0.tar.gz
解压安装包
[root@bogonsrc]#tarzxvfnginx-1.18.0.tar.gz
进入安装目录
[root@bogonsrc]#cdnginx-1.18.0
编译安装
[root@bogonnginx-1.18.0]#./configure--prefix=/usr/local/webserver/nginx--with-http_stub_status_module--with-http_ssl_module--with-pcre=/usr/local/src/pcre-8.35[root@bogonnginx-1.18.0]#make[root@bogonnginx-1.18.0]#makeinstall
[root@bogonnginx-1.18.0]#/usr/local/webserver/nginx/sbin/nginx-v
安装成功!!!
配置nginx、设置云服务器- 配置nginx将打包好的前端项目放到nginx安装目录(/usr/local/webserver/nginx)=>html下,然后找到nginx安装目录=>conf=>nginx.conf,编辑nginx.conf文件
vinginx.conf
把这段替换成这样:
改成这样:
location/{indexindex.htmlindex.htm;try_files$uri$uri//index.html;}
保存文件:wq
注意:SPA
是一种网络应用程序或网站的模型,所有用户交互是通过动态重写当前页面,不管我们应用有多少页面,构建物都只会产出一个index.html
,当我们进入到子路由时刷新页面,web
容器没有相对应的页面此时会出现404,
解决办法:只需要配置将任意页面都重定向到index.html
,把路由交由前端处理,对nginx
配置文件.conf
修改,添加try_files$uri$uri//index.html;
所以如果前端项目路由用的是history模式,如果用默认配置可能会刷新页面404的问题详情可以参考:vue3js.cn/interview/v…
vue-cli官方文档:cli.vuejs.org/zh/config/#…
/usr/local/webserver/nginx/sbin/nginx
关闭防火墙:chkconfigiptablesoff
输入公网id地址查看成果
到这一步就大功告成了!!!
常用命令/usr/local/webserver/nginx/sbin/nginx-sreload#重新载入配置文件/usr/local/webserver/nginx/sbin/nginx-sreopen#重启Nginx/usr/local/webserver/nginx/sbin/nginx-sstop#停止Nginxchkconfigiptablesoff#关闭防火墙/usr/local/webserver/nginx/sbin/nginx-t#检查配置文件nginx.conf的命令
写在最后我是AndyHu,目前暂时是一枚前端搬砖工程师。
文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注
让灵魂控制自己的皮囊才是真正的自由!!!