‘壹’ vue cli3项目打包部署到tomcat服务器运行
步骤:
一、找到文件vue.config.js,没有则自己创建一个
二、编写vue.config.js的内容
三、修改路由方式,修改为hash,文件位置自己找,vuecli3中在router.ts文件中
四、添加空路由
找到编译好的文件夹,如果作为独立项目,直接拷贝后放到Tomcat里即可,如果是放到另外一个项目中使用,则拷贝到其它项目中去
七、适配到EOS中使用
7.1、改变原EOS项目中的首页配置
在webapps\default\WEB-INF\web.xml中配置
7.2、修改原EOS项目中的登录成功的跳转页,也是项目主页
在webapps\default\coframe\auth\index.jsp中配置
‘贰’ 怎么把VUE项目部署到服务器上面
1.使用xshell登录到阿里云服务器。安装nginx(本文安装到/etc下)
[plain]view plain
cd/etc
apt-getupdate
apt-getinstallnginx
2.首先先配置nginx,然后再根据配置文件做下一步操作
打开/etc/nginx/nginx.conf文件
[plain]view plain
vim/etc/nginx/nginx.conf
在nginx.conf中配置如下:
[plain]view plain
userwww-data;
worker_processesauto;
pid/run/nginx.pid;
events{
worker_connections768;
#multi_accepton;
}
http{
##
#BasicSettings
##
tcp_nodelayon;
keepalive_timeout65;
types_hash_max_size2048;
#server_tokensoff;
#server_names_hash_bucket_size64;
#server_name_in_redirectoff;
include/etc/nginx/mime.types;
default_typeapplication/octet-stream;
##
#SSLSettings
##
ssl_protocolsTLSv1TLSv1.1TLSv1.2;#DroppingSSLv3,ref:POODLE
ssl_prefer_server_cipherson;
##
#LoggingSettings
##
access_log/var/log/nginx/access.log;
error_log/var/log/nginx/error.log;
##
#GzipSettings
##
gzipon;
gzip_disable"msie6";
#gzip_varyon;
#gzip_proxiedany;
#gzip_comp_level6;
#gzip_buffers168k;
#gzip_http_version1.1;
##
#VirtualHostConfigs
##
gzipon;
gzip_disable"msie6";
#gzip_varyon;
#gzip_proxiedany;
#gzip_comp_level6;
#gzip_buffers168k;
#gzip_http_version1.1;
#gzip_typestext/plaintext/cssapplication/jsonapplication/javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascript;
##
#VirtualHostConfigs
##
include/etc/nginx/conf.d/*.conf;
include/etc/nginx/sites-enabled/*;
#以下为我们添加的内容
server{
listen80;
server_nameyour-ipaddress;
root/home/my-project/;
indexindex.html;
location/datas{
rewrite^.+datas/?(.*)$/$1break;
includeuwsgi_params;
proxy_passhttp://ip:port;
}
}
}
接下来就根据配置文件进行下一步工作。配置文件中的server_name后面是阿里云服务器的ip地址
3.配置文件中的listen是nginx监听的端口号,所以需要在阿里云服务器上为80端口添加安全组规则
在本地的浏览器登录阿里云服务器->进入控制台->点击安全组->点击配置规则->点击添加安全组规则,之后配置如下(注:入方向和出方向都要配置)
4.配置文件中的root和index那两行表示我们把项目文件夹放在/home/my-project下
例如有两个项目文件夹分别为test1,test2,里面都有index.html。则目录结构如下
/home
|--my-project
|--test1
|--index.html
|--test2
|--index.html
则在浏览器输入http://ip/test1/index.html
服务器便会在/home/my-project中找到test1下的index.html执行;
如果在浏览器中输入http://ip/test2/index.html
服务器便会在/home/my-project中找到test2下的index.html执行;
这样便可以在服务器下放多个项目文件夹。
5.所以我们也需要在本地项目的config/index.js里的build下进行修改,如果要把项目放到test1下,则
[javascript]view plain
assetsPublicPath:'/test1/',
如果用到了vue-router,则修改/router/index.js
[javascript]view plain
exportdefaultnewRouter({
base:'/test1/',//添加这行
linkActiveClass:'active',
routes
});
6.nginx配置文件中的location则是针对跨域处理,表示把对/datas的请求转发给http://ip:port,本文中这个http://ip:port下就是需要的数据,例如http://ip:port/seller,在本地项目文件中ajax请求数据的地方如下
[javascript]view plain
consturl='/datas/seller';
this.$http.get(url).then((response)=>{
.....
});
7.修改后在本地命令行下运行:cnpm run build 生成dist文件。把dist文件里的index.html和static文件上传到服务器的/home/my-project/test1下,目录结构如下
/home
|--my-project
|--test1
|--index.html
|--static
8.启动nginx
[plain]view plain
servicenginxstart
9.至此项目部署成功,在浏览器下输入: http://ip/test1/index.html 即可
‘叁’ vue配合nginx打包路径层问题
1、需求是访问地址增加一层路径比如:(增加一层路径为customfile)
之前:http:xxxx/login
要求:http:xxxx/customfile/login 其中filename属于ng配置时的一层文件夹
解决:
1、vue项目的webpack配置不同版本有区别大致修改的地方为:
assetPublicPath: '/customfile'
或
public: '/customfile'
2、修改router.js路由模式为: {mode:'history', base:'/customfile'}
3、Nginx配置修改:
location /customfile {
alias /data/xxxx/xxx/customfile/dist; // 这里是服务器资源路径
try_files $uri $uri/ /customfile/index.html;
index index.html;
}
‘肆’ Vue本地项目过程随笔(4) 部署到服务器
服务器购买,端口开放不再多讲 文件的上传使用 Xftp 。
工作经历内容用到的 省略号特效
本地Vue项目打包,生成文件放在Vue项目目录下的dist文件夹
在阿里云服务器控制台内安装nodejs,端口开放在防火墙选项下
安装nginx
npm install命令遇到relocation error: npm: symbol SSL_set_cert_cb的报错问题
改标签栏icon,以及标签名
安装完nginx后 用Xftp登陆服务器,上传打包好的项目。
保存,回到服务器控制台输入 重新运行nginx
现在可以通过ip地址访问到打包过的Vue项目了
我的项目链接: http://phantomcorner.tech
Github
‘伍’ Vue打包并自动部署到指定服务器
安装依赖
配置备用环境变量
在根目录下创建.env.development文件,并添加环境变量
VUE_APP_SERVER_ID = 0
在根目录下创建.env.proction文件,并添加环境变量
VUE_APP_SERVER_ID = 1
创建自动化部署脚本
在package.json同级目录下创建文件夹deploy
在deploy文件下创建config.js和servers.js和index.js
servers.js:配置服务器相关信息
config.js:发布前的一些处理
index.js:发布到服务器的处理逻辑
添加package.json中的scripts命令
效果如下
‘陆’ vue设置代理的时候填的是服务器地址吗
vue设置代理的时候填的是服务器地址。
简单的只能配置一个代理,不能控制走不走代理。vue.config.js配置
例如: 比如接口地址为/students, pubilc文件里有名为students的文件,代理服务器则不会将请求转发到服务器,会直接将public里名为student的文件里的内容返回。
‘柒’ vue项目如何打包上线--笔记
1.第一步
然后会生成一个dist目录的文件夹
2.将dist文件夹拎出来,我本地已经打好localhost服务器,使用IIs搭建的,如果想输入: localhost:8001/project 打开文件,需要在index.js文件配置:
如何让vue项目然后通过ip地址访问,需要在package.json配置项加个 --host 0.0.0.0
3.
build/webpack.prod.conf.js
config/index.js
4.重复第一步npm run build
因为这边我是本地搭建的服务器,菜菜的我不会写接口,只能模拟了,我这边是在服务器指定文件夹下建了个api文件夹,里面放对应的json文件,如果是团队开发,只要把dist文件扔给后端,后端会写好接口的,嗯就这样
5.运行结果对比
6.进一步优化
当项目日趋庞大,打包后的app.js会越大,-----异步组件加载
‘捌’ vue项目如何部署到服务器
第一步配置 vue.config.js
第二步修改路由,改为 hash模式
第三步文件打包,执行以下,目录中会出现一个dist文件夹,将文件拖到服务器的 root 文件夹中
第四步可以通过域名进行访问 http://www.linlin.run/my-project/index.html#/home
‘玖’ vue项目打包部署后请求地址及请求问题
1 首先 vue中 是用的axios 发请求, axios 支持Promise 非常好用, 可以在请求后的.then()中拿到请求回来的数据,像这样
2 请求方式有很多, 如get post put get 又称为 queryParams 所以携带参数后看发的请求是拼串的,像这样
写的时候你可以采取拼串的写法 像 'page = ' + page + '&size=‘size 这种写法,但这种写法过于死板, 当后台要求你穿的参数 是有值时就传 没值时不传 这样就不可以了 因为就算做收集的表单没有数据,也会传一个key过去,这样到后台 后台就会收到一个空值 , 这时候你可以用get请求的另一种方式 params, 这种写法相对灵活 写起来也比较简便 像这样
但当你被要求没值时不传 你就要做一些处理了 比如 把所有要传得数据都放在一个对象中,在发请求前对象做一下处理 删掉没有值得那条属性 比如这样
3 还有就是 发请求的问题了 因为在开发的时候会有跨域问题,我们一般为了方便都会 配置一个代理proxyTable, 但是在打包部署后在服务器上会有问题 因为服务器上没有跨域 请求地址会错, 但是像我上篇帖子中说的那样 每一次打包前都 把请求地址改为服务器地址 那样又很麻烦, 所以我是这么做的,
我在config/dev.en.js中配置了一下 像这样
在config/prod.env.js中这样配置
在组件中发请求时这样写
我认为这样还是比较好用的 如果那里除了问题你需要在 调试工具的network中查看请求地址 看是不是正确 ,不正确改就行了
这些都是比较基础的,但很实用,希望可以帮到你们
‘拾’ vue项目部署iis服务器
一、将vue项目进行打包编译后,根目录生成dist的文件
当出现如上图显示时,说明打包编译完成,已经生成dist文件
二、打开iis服务器
打开iis服务器后选中【网站】后右击选【添加网站】,就可对网站进行配置,物理路径选择编译后的dist文件夹后选确定就行。
三、右击选择【启动】后出现如下报错信息:
除非Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站
解决:
打开命令提示符中输入services.msc ,打开服务。
找到windows install及word wide web发布服务选项,分别右击启动,并右键属性改为启动类型就可以。
这是重新启动下,就可以访问。