在Tomcat上部署Vue.js项目

本文介绍如何将使用Vue.js开发的前端项目部署到Tomcat服务器上。首先,通过命令行打包Vue.js项目到dist文件夹,然后利用WinSCP登录服务器,将dist文件夹内容复制到Tomcat的webapps目录下创建的新文件夹中,如bookmanage。访问http://服务器地址:8080/bookmanage即可看到项目。但需要注意,由于应用是单页应用,还需后台配置以避免404错误,可参考相关文章进行配置。

接着上次的图书管理系统

修改完问题后把SpringBoot成功部署到了服务器上
测试了下api接口,能正常访问
那么下面就是在服务器上部署前端的vue.js了

这里的话我们要明确一点
vue.js是一个前端的框架,所以部署的时候并不需要node.js之类的服务器 像本地的

     
1
     
npm run Dev

只是用来调试用的,不要再线上用它部署

这里我先用比较熟悉的Tomcat来部署
我们先在本地运行命令来打包

     
1
     
npm run bulid

通过这个命令,我们会打包我们的项目到一个 dist文件夹中

我们把它部署到Tomcat服务器上

用WinSCP软件登陆我们的服务器
找到Tomcat的wabapps目录
把新建一个文件夹,我这里把它命名为 bookmanage
我们把本地dist文件夹里的文件复制到 bookmanage中

完成之后,我们访问默认的8080端口 加上 bookmanage 就可以访问到我们的项目了
例如我的项目地址 http://118.89.159.95:8080/bookmanage
这样我们的前端的项目部署就成功了

————————2018-01-31更新————————

但是仅仅这样还是不够的的

还需要需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404。

可以参考这篇文章 来配置下。


感谢网友们的指正,我要更加严谨的去完成博客的内容才行!

### 部署多个 Vue.js 项目Tomcat 的方法 在 Tomcat部署多个 Vue.js 项目,需要确保每个项目都有独立的上下文路径,并且服务器能够正确识别这些路径。Vue.js 项目本质上是静态资源文件,因此可以通过将其打包后放置在 Tomcat 的 `webapps` 目录下,通过不同的上下文路径进行访问[^4]。 #### 项目打包与目录结构 在部署之前,需要对每个 Vue.js 项目进行打包操作。使用 Vue CLI 构建项目时,确保在 `vue.config.js` 文件中设置正确的 `publicPath`,以便在部署Tomcat 的不同路径下时能够正确加载静态资源。 ```javascript module.exports = { publicPath: process.env.NODE_ENV === 'production' ? './' : '/' }; ``` 打包完成后,将生成的 `dist` 目录分别重命名为项目名称,例如 `project1` 和 `project2`,并将它们放置在 Tomcat 的 `webapps` 目录下。此时,Tomcat 会自动将这些目录识别为独立的 Web 应用程序。 #### 访问多个 Vue.js 项目 通过配置不同的上下文路径,可以分别访问不同的 Vue.js 项目。例如,访问第一个项目可以使用 `http://localhost:8080/project1`,而访问第二个项目则使用 `http://localhost:8080/project2`。每个项目的静态资源路径应确保为相对路径,以便在不同上下文中正确加载资源[^4]。 #### 跨域与服务器配置 如果项目之间存在跨域请求需求,应确保 Tomcat 的跨域配置或后端服务的 CORS 配置能够正确处理这些请求。如果后端已经处理了跨域问题,则不需要在 Tomcat 层面重复配置,以避免出现重复头信息导致的错误[^3]。 #### 静态资源路径问题 在部署 Vue.js 项目时,需要注意静态资源(如图片)的路径问题。如果使用绝对路径,可能会导致资源加载失败。建议使用相对路径或通过 `vue.config.js` 中的 `publicPath` 设置为 `./`,以确保资源在不同上下文中正确加载[^1]。 #### Tomcat 配置优化 为了更好地支持 Vue.js 项目的路由功能(如 HTML5 History 模式),可以在 Tomcat 中配置 `web.xml` 文件,添加 URL 重写规则,确保所有请求都指向 `index.html`,从而避免 404 错误。 ```xml <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 此外,还需要在 `context.xml` 文件中启用 `allowLinking`,以便支持符号链接。 ```xml <Context allowLinking="true"> </Context> ``` 通过上述配置,Tomcat 可以正确处理 Vue.js 项目的路由和静态资源加载问题。 #### 启动与访问 完成部署后,启动 Tomcat 服务器。Tomcat 会在 `webapps` 目录下自动生成相应的上下文路径,并将每个 Vue.js 项目作为独立的应用程序运行。访问不同的上下文路径即可进入对应的 Vue.js 项目界面[^4]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值