Tomcat服务器部署Vue项目步骤及history和hash模式在Tomcat上的区别

博主是做后端的,第一次做vue项目并发布服务器,这里只是自己的理解,仅作为一家之言,欢迎大神们批评指正.....

1.大前提:使用Tomcat服务器部署,这个也是自己总结供以后参考的

在安装好的Tomcat上找到webapps文件夹,在webapps文件夹下创建一个文件夹,例如myProject,此文件夹将成为你的项目名称,

然后修改Tomcat文件夹下的conf下的server.xml,在Host标签内下方加入

<Context path="/myProject/" docBase="C:\app\apache-tomcat-8.5.66\webapps\myProject" reloadable="true">

其中,path要和刚刚创建的文件夹名称相同,docBase指向刚刚创建的文件夹,

打包vue项目,在vue项目中使用

npm run build

一般会在项目的根目录下创建一个dist文件夹,然后进入文件夹,将dist文件夹下的内容传到服务器上的myProject文件夹下.

启动服务器访问即可.

2.history和hash模式在Tomcat上的区别

2.1 使用hash模式

在router文件夹找到路由位置,

const router = new VueRouter({
  mode: 'hash',
  base: '/myProject/',
  routes
})

在这里可以看到我们设置mode为hash,base设置的这个路径要和Context Path一样

然后访问我们的服务器地址,博主这里以windows上本地部署的Tomcat为例

http://localhost:8080/myProject?name=zhangsan,

当第一次访问这个路径,没有问题正常显示,但是同一浏览器第二次访问就会显示空白页,清除缓存后仍然如此,这是什么情况呢?细心的道友会发现浏览器上的地址发生了变化,

第一次访问是 http://localhost:8080/myProject?name=zhangsan#/myfirstpageicon-default.png?t=N7T8http://localhost:8080/myProject?name=zhangsan#/myfirstpage

但是第二次访问是http://localhost:8080/myProject?name=zhangsan#/icon-default.png?t=N7T8http://localhost:8080/myProject?name=zhangsan#/这是神马情况,不注意看就发现不了,

/ 后面没有了具体的路由组件

这里解释一下hash模式路径的各个部分

http://localhost:8080/myProject这部分不必多说是你项目的路径

?name=zhangsan是请求额外携带的参数,

而#是 hash符号,用来分隔"正常"部分和hash部分,在vue的hash模式下,vue路由器会监听这个hash部分的变化来更新前端路由

至于/myfistpage,这不是固定的,是你的路由组件 ,Vue路由器会根据这部分内容来匹配并渲染相应的组件

注意#后面的内容(包括#)不会被发送到服务器,这意味着服务器只会接收到/myProject?name=zhangsan这样的请求,而不会知道#/myfistpage部分。Vue路由器会在客户端解析这个hash部分,并根据配置来渲染相应的页面或组件

2.2 使用history模式

使用history模式和hash模式一样,第一次正常访问,第二次不行,但是history模式没有#/,

在地址栏url上会显得很干净,至于如何解决第二次不显示问题,欢迎讨论.....

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Nginx上部署Vue项目使用history模式)需要进行以下步骤: 1. 安装Nginx:首先确保已经在服务器上安装了Nginx,可以使用包管理器(如apt、yum等)进行安装。安装完成后,启动Nginx服务。 2. 构建Vue项目:在本地开发环境中使用Vue CLI构建好的Vue项目使用以下命令构建: ``` npm run build ``` 此命令将生成一个`dist`目录,包含了打包好的静态资源。 3. 配置Nginx:找到Nginx的配置文件,默认路径为`/etc/nginx/nginx.conf`,使用文本编辑器打开进行编辑。 4. 在Nginx的配置文件中找到`location /`的块,并将其替换为以下内容: ``` location / { try_files $uri $uri/ /index.html; } ``` 这段配置代码的作用是将所有的URL请求重定向到`index.html`文件,因为Vue项目是一个单页应用,所有的页面都由`index.html`和JavaScript文件来管理。 5. 配置代理(可选):如果Vue项目需要与后端API进行通信,可以将API请求代理到后端服务器。在Nginx配置文件的`location /`块后面,添加以下内容: ``` location /api/ { proxy_pass http://backend-server; } ``` 将`backend-server`替换为实际的后端服务器地址。 6. 保存并退出Nginx配置文件。重新加载Nginx配置,使更改生效: ``` nginx -s reload ``` 现在,Vue项目已经成功部署在Nginx上,并且可以通过服务器的IP地址或域名进行访问。使用history模式Vue路由器可以正常工作,并且URL不会显示`/#/`的哈希标记。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值