vue cli3项目打包部署到tomcat服务器运行
步骤:
一、找到文件vueconfigjs,没有则自己创建一个
二、编写vueconfigjs的内容
三、修改路由方式,修改为hash,文件位置自己找,vuecli3中在routerts文件中
四、添加空路由
找到编译好的文件夹,如果作为独立项目,直接拷贝后放到Tomcat里即可,如果是放到另外一个项目中使用,则拷贝到其它项目中去
七、适配到EOS中使用
71、改变原EOS项目中的首页配置
在webapps\default\WEB-INF\webxml中配置
72、修改原EOS项目中的登录成功的跳转页,也是项目主页
在webapps\default\coframe\auth\indexjsp中配置
1、先配置nginx:
2、在路由中添加
注意如果是ts文件的话,如果默认有生成js的话要查看对应的js是否有加上目录,否则设置会无效。
3、在viteconfigts文件中添加
这周花了两天时间简单研究了下目前非常流行和应用广泛的前端js框架 vue ,作为一个基础的了解。 vue 的作者是国人尤雨溪。官网描述 vue 是一套用于构建用户界面的渐进式框架,可以自底向上逐层应用,它核心只关注视图层,易于上手和便于整合。同时,其可以与现代化的工具链和各种类库结合,用以创建复杂的单页应用。其特点主要有以下几点:
基于 vue 的流行度,日常项目前端有在使用,遂记录这篇文章,主要讲从环境搭建到使用样例。在学习中,体验和完成了一个功能稍微丰富的例子,为简洁起见,本期只展示官方默认例子。鉴于本地也没有nodeJs环境,所以直接从环境搭建开始。
配置淘宝源,注意 -g 是全局安装
完成之后将使用 cnpm 替换 npm ,验证 cnpm :
之后的依赖安装就可以使用 cnpm install <package> 或简写 cnpm i <package> 进行。没有代理的情况下,相比npm国内要快很多,也不容易失败。注意可以使用 -g -D --save 等参数设置安装范围。
安装 vue-cli
vue-cli 是官方提供的项目脚手架(可以看做类似服务端开发的maven用于构建的部分),用来进行项目构建等操作,后面我们会继续介绍。它还提供了一个图形界面,用来执行和进行相关配置,对于新手等只关心结果的人,减少了很多的学习成本。
安装命令
验证安装
之后我们看到一个 hello-world 的文件夹,里边包括默认生成的一些配置和 Appvue , mainjs 等程序文件,如下是支持 vue-router 路由 (控制页面切换等操作) 的一个 mainjs 具体内容
注意使用路由时,不要忘记在主模板里添加 <router-view></router-view> 标签,表示路由切换的位置,否则路由页面无法正常展示。
先保持默认的demo内容不变,运行如下命令启动一个本地服务来运行
之后会启动对应的服务,通过地址和端口访问,就能看到默认的页面。
既然提到了部署,默认的部署使用 npm/cnpm 进行,如下命令,输出内容在 /dist 目录。
可以使用参数来设置,得到符合不同需要的编译结果。之后即可以将打包的文件部署到服务器上。
这里说下 vue-cli 脚手架所带的图形界面编译打包管理,可使用如下命令开启,然后按照提示,加入需要的项目,可以查看仪表盘展示,进行插件管理,依赖管理,编译配置,以及项目构建的操作,十分方便。
启动 vue-cli 图形界面
然后按照提示访问即可。
以上就是本期的内容,主要是一些初期的准备工作。目前整体了解了vue相关,如渲染,组件化,路由等。总体来说依托 vue 提供的丰富文档和比较好用的工具,以及本身非常高的流行度,在尝试稍微复杂的功能或者遇到问题时,容易找到相关满意的解决方式,总体来说还是比较适合入门的。后续看时间能多熟悉些实际项目,真正用于搭配后端做个可用的项目。
1 Vuejs介绍
2 Vue CLi脚手架
当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中。我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放到 tomcat 上。
如果是 vue-cli (非 simple 脚手架),这篇文章可能有点帮助。地址链接:vue-cli 如何打包上线
先来描述一下期间遇到的问题有哪些:
1、打包后将 dist 文件夹和 indexhtml 放到 tomcat,在浏览器中访问时,出现空白页,f12 提示 404。
2、打包好的静态资源均是绝对路径,无法引入进项目,也是 404。
1、项目目录结构
这是打包后的,所以有 dist 文件夹,打包方式:npm run build。
2、webpackconfigjs
这里只是一小部分,因为这边最关键的就是 publicPath,下面会提,这边可以解决静态资源 404 无法引入的问题。
3、npm run build 打包后的文件。
npm run build 打包后生成一个 dist 文件夹,这里面的目录:
我对 webpack 打包工具的原理不是很清楚,所以文件夹应该生成什么不是了解。我这边是这样子的。主要是一个主要的 buildjs, 因为我们的 indexhtml 引入的就是这个 js 文件。还有一些文件和 ElementUI 生成的 ttf 和 woff。
4、如何放到服务器中。
接下来就是需要将生成的 dist 文件夹和 indexhtml 文件放到服务器中,只需要这两个。首先我将这两个文件放在同一个文件夹中,我命名为 gas(随意)。
然后将文件夹放到 tomcat 中,我将文件夹放到 tomcat 的 webapps 文件夹目录下:
ok 部署完成,启动 tomcat,你会发现显示一个空白页,一些静态资源都是 404。
5、解决空白页和静态资源无法引入的问题。
1、首先空白页的问题,可以重 f12 中看出来都是绝对路径的原因,而我们打包后,应该的引入路径是相对路径,这时我们需要的是修改 indexhtml 页面。
看一下没改之前的:
看我 /dist/buildjs 引用的是绝对路径,这就导致了在 tomcat 去访问 indexhtml 页面时,报404。我们需要将路径变成相对路径 /dist/build/。多一个点,很关键。好了到这里应该主页面可以显示了。
但是你会发现,我的静态资源,我的(不包括 img 形式的引入),例如我在 css 中 background:url() 的显示404。
2、解决静态资源失效的问题
这就需要修改我们的 webpackconfigjs 中的 publicPath 了,默认的 vue-cli 脚手架环境搭建好后,publicPath 是这样的:
可以看到我们的路径是: /dist/。所以这时候我们如果打开页面,静态资源的路径都会是这样子的,并且报错404:http://1000181:8088/dist/bgpngfe9b889cea51978538ce352593be0573
显然可以看出和我们想要的路径不一致,上面我贴出来的在 tomcat 的文件目录中我将 dist 和 indexhtml 都放进了一个 gas 的文件夹中。所以正确的路径应该是这样的:
http://1000181:8088/gas/dist/bgpngfe9b889cea51978538ce352593be0573
看出区别了吗!
解决:
所以我需要改变一下 webpackconfigjs 中的输出路径 publicPath: /gas/dist/。将最外层的文件夹路径加进去,这样就可以将静态资源引入进项目了。
ok,到现在为止,最主要的两个问题解决了,一个是 indexhtml 空白页,另一个是 静态资源路径不正确的问题。
6、indexhtml 页面中的link 和 srcipt 引用的资源失效问题:
原因还是路径的地址不对:
妥协的解决方法是:将自己引用的资源手动放到打包出来的 dist 文件夹内,然后在 indexhtml 中按照 dist 的相对路径进行引用。
代码中的 iconico 就是我手动将 icon 图标放到 dist 文件夹中,然后按照对应的引用路径进行引用。其他的 css 和 js 引用一样。
7、待解决的问题:
1、在我的项目中,使用了 ElementUI 框架,但是在打包放到服务器中后,发现按钮样式变了,所有的 padding 失效,所有我只能自己手动进行添加样式。
2、在我的 indexhtml 中如果引入 link css文件时,还是没办法引入相对路径,所以我将 css 样式都放到了各自的组件中的 style 中了,其他的一般都是用 npm 注入依赖的形式进行安装。
8、网上搜索到的相关问题和解决方法。
1、求助!Vue项目用Webpack打包后放到服务器上,但访问是空白页?弄了好久了也不知道什么原因
2、vue项目中,npm run build生成的indexhtml文件只有放在根目录下打开才能生效,怎么解决?
3、Vue应用部署到服务器的正确方式
第一步配置 vueconfigjs
第二步修改路由,改为 hash模式
第三步文件打包,执行以下,目录中会出现一个dist文件夹,将文件拖到服务器的 root 文件夹中
第四步可以通过域名进行访问 http://wwwlinlinrun/my-project/indexhtml#/home
0条评论