vue被部署到子(二级)目录

摘要:
需求有的时候,你的域名很珍贵,除了二级域名外。你还可以将你的项目部署在服务器二级目录下,这样的话,就可以部署多个项目了。

需求
有的时候,你的域名很珍贵,除了二级域名外。
你还可以将你的项目部署在服务器二级目录下,这样的话,就可以部署多个项目了。
比如说,我有一个域名为dshvv.com的服务器,我想部署两个项目:
12306项目:http://dshvv.com/12306
淘宝项目:http://dshvv.com/taobao
问题
普通项目不会有问题,
但是如果是单页项目,而且单页项目的路由用的是history模式,不管是vue还是react都会出现一个问题
那就是“刷新当前页面404”
这是因为这种(history)模式会被错误的认为向服务端发出了真请求,但是其实这这是前端路由变化,后端自然也没做好相应你的处理,所以就404了
解决
前端配置
vue.config.js增加如下配置:

publicPath: '/caspage/'

路由配置如下:

const router = newVueRouter({
  mode: 'history',
  base:'/caspage/',
  routes
})

后端nginx.conf配置如下: 

# 首先给要部署的项目分配一个服务
server {
        listen 8001;
        location /{
            # vue h5 history mode 时配置
            try_files $uri $uri/ /index.html;
            root html/caspage;
index index.html index.htm;
        }
    }
# 再到配置域名的主配置server上做反向代理 
server { listen
80; server_name localhost; location /{ root html; index index.html index.htm; # vue-router的history模式下,刷新页面404处理 try_files $uri $uri/ /index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
#这里是需要部署的二级目录应用配置
location/cloudChartPage{
alias/data/cloudChartPage/;
indexindex.htmlindex.htm;
try_files$uri$uri//cloudChartPage/index.html;
}
}

然后重新启动就行了
参考:https://www.cnblogs.com/liugx/p/9336176.html
nginx安装与配置
参考本文

如果二级页面刷新依然白屏
这样处理

   location /xxpage {
        alias /data/html/pagedir/;
        index  index.html;
        try_files $uri $uri/@xxpage_action;
    }

    location @xxpage_action {
        rewrite ^.*$ /pagedir/index.html last;
    }

免责声明:文章转载自《vue被部署到子(二级)目录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【迁移】—Entity Framework实例详解使用SplitContainer来实现隐藏窗口的部分内容(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nginx配置静态文件问题

此为容器访问宿主机tomcat例子 出现问题:通过nginx访问tomcat时无图形界面 我们访问http://IP:端口/***.png(nginx的访问链接),但是实际访问的静态文件是的容器中的路径: 所以我们应该把宿主机的目录挂载到容器,或者直接拷贝文件到容器内,然后给路径 -v /px/nginx/webapps:/webapps/ROOT 发...

Vue.set()和this.$set()源码解析

前言 我们在日常项目开发过程中,有时候我们对数组或者对象进行了一些操作后,发现页面数据没有更新到。这个时候就会有疑问,why? 如果我们在看文档有这样一个api,以下内容: Vue.set()和this.$set()实现原理 Vue.set()的源码:... 这里是省略的代码 import { set } from '../observer/index'...

vue前端使用axios传参注意事项

axios只支持键值对传参,如果只有一个数据也要封装为键值对,ids为后台接收的参数例如const data = { ids: JSON.stringify(parameter) } 1.如果后台接收的数据类型为数组类型,则,前台组装数据为1,2,2,4,3注意不要加()和[],否则出错2.如果传递集合形式: ids=[1,18,19,20,21,22,2...

Vue实现Rate组件(星星评分)

这个功能就类似于某宝在购物之后,对商品进行评价 先看一下效果 那么实现这个功能也很简单,新建一个my-rate组件,然后上代码 1 <template> 2 <div :class="{'disabled':disabled}"> 3 <span v-if="showText" class="text"&g...

安装XMind出现Invalid Configuration Location The configuration area at

Invalid Configuration Location ,The configuration area at 'C:UsersAdministratorApplicationDataXMindconfiguration-cathy_win32'cound not be created.Please choose a writable location...

vue router:解决相同路径不同路由参数跳转同一页面,路由参数不动态刷新的问题

问题描述 当我们使用同一路径跳转不同页面时,路由参数不会刷新,所以组件中接收不到,比如我的路由定义和路由跳转链接如下:当然我们人为不肯直接这样写啦~这里模拟问题写的demo 采用 watch 监听 1. 在点击跳转的组件中使用 watch 进行检测动态改变路由参数: watch: { // 利用watch方法检测路由变化:进行重新赋值 $r...