需求
有的时候,你的域名很珍贵,除了二级域名外。
你还可以将你的项目部署在服务器二级目录下,这样的话,就可以部署多个项目了。
比如说,我有一个域名为dshvv.com的服务器,我想部署两个项目:
12306项目:http://dshvv.com/12306
淘宝项目:http://dshvv.com/taobao

问题
普通项目不会有问题,
但是如果是单页项目,而且单页项目的路由用的是history模式,不管是vue还是react都会出现一个问题
那就是“刷新当前页面404”
这是因为这种(history)模式会被错误的认为向服务端发出了真请求,但是其实这这是前端路由变化,后端自然也没做好相应你的处理,所以就404了

解决
前端配置
vue.config.js增加如下配置:

publicPath: '/caspage/'

路由配置如下:

const router = new VueRouter({
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/;
            index  index.html index.htm;
            try_files $uri $uri/ /cloudChartPage/index.html;
         }
    }

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

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

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

项目代码就在根目录下

location / {
try_files $uri $uri/ /index.html;
index index.html index.htm;
}

vue被部署到子(二级)目录的更多相关文章

  1. vue通过(NGINX)部署在子目录或者二级目录实践

    1.修改 router/index.js 添加一行 base: 'admin', 2.然后修改 config/index.js 增加一行 const assetsPublicPath = '/admi ...

  2. vue history 模式打包部署在域名的二级目录的配置指南

    最近在做项目,需要把项目部署在域名下的二级目录,并且是在用vue-router的history 模式. 我们都知道vue-router 的两种前端基本访问模式 hash 和history .hash ...

  3. K8s nginx-ingress 如何配置二级目录转发远程静态服务器基于Vue路由history模式打包的应用程序

    背景 首先这标题有点绕,我先解释下: 首先我们有静态服务器,上面某个目录有Vue路由history模式打包的应用程序(也就是build后的产物): 但是静态服务器一般不做对外域名用的,我们需要在k8s ...

  4. vue配置二级目录&vue-axios跨域办法&谷歌浏览器设置跨域

    一.根据官方建议,dist打包的项目文件放在服务器根目录下,但是很多时候,我们并不能这样做,当涉及到二级目录设置多层深埋的时候,就需要在webpack配置文件里去设置一下了. 在webpack.con ...

  5. 修改vue的配置项支持生产环境下二级目录访问的方法

    本文主要记录如何配置vue的打包文件配置项,使打包后的文件可以支持二级目录的访问. 1.常规打包 在实际的项目中,我们通常都使用 npm run build 直接打包文件后丢到服务器上访问 打包后的文 ...

  6. Vue项目部署问题及解决方案

    Vue项目部署问题及解决方案 Vue-Router 有两种模式,默认是 hash 模式,另外一种是 history 模式. hash:也就是地址栏里的 # 符号.比如 http://www.examp ...

  7. Vue项目部署遇到的问题及解决方案

    写在前面 Vue-Router 有两种模式,默认是 hash 模式,另外一种是 history 模式. hash:也就是地址栏里的 # 符号.比如 http://www.example/#/hello ...

  8. Nginx配置二级目录/路径 映射不同的反向代理和规避IP+端口访问

       当配置Nginx来映射不同的服务器 可以通过二级路径来反向代理 来解决一个外网端口实现多个服务访问. 配置如下: server { listen ; server_name demo.domai ...

  9. nginx配置二级目录,反向代理不同ip+端口

    场景描述: 通过二级目录(虚拟目录,应用程序)的方式访问同一ip+端口的不同应用,例如location是用户使用页面,location/admin/是管理页面,location部署在192.168.1 ...

  10. 用jquery实现文章自动生成二级目录(续)

    前文:用jquery实现文章自动生成二级目录. 使用方法的补充 我们可以把我们的js和css上传到博客园,然后在页面HTML代码中使用他们. 发现的一些问题 在我把我的js放到自己的博客园上运行之后发 ...

随机推荐

  1. Armbian 安装与更换为国内软件源

    Armbian 是为 ARM 架构的单板计算机(如树莓派.NanoPi.Orange Pi 等)提供的开源镜像系统,它基于 Debian 或 Ubuntu 系统.在使用 Armbian 进行开发.调试 ...

  2. Tomcat知识点整理

    从学习起就开始接触tomcat, 解压, 点击运行, 然后放文件夹里面会自动部署, 可以通过ip访问. 在这里主要记录一些tomcat相关的知识点 配置文件解析(留位置) server.xml/web ...

  3. QT 可绑定属性 QProperty QObjectBindableProperty QObjectComputedProperty,简化信号、槽(SIGNAL、SLOT)机制的方法

    QT提供的可绑定属性是指这些属性可以绑定到其他值或表达式上(通常是 C++ lambda 表达式).如果属性是通过表达式进行绑定,该属性会跟随表达式自动更新.可绑定属性由 QProperty 类和 Q ...

  4. MySQL 中 varchar 和 char 有什么区别?

    MySQL 中 varchar 和 char 的区别 在 MySQL 中,VARCHAR 和 CHAR 是两种常用的字符串类型,它们在存储方式.长度限制和使用场景等方面存在显著区别. 1. 定义与存储 ...

  5. kettle介绍-Step之Value Mapper

    Value Mapper值映射介绍 值映射步骤是将字符串值从一个值映射为另一个值.值映射步骤提供了一个简单的替代方法,在输入流中选中一个字段,通过字段值设置源值和目标值,再将映射值输出给后续步骤使用. ...

  6. IIS—503错误排查

    服务器返回503(IIS Service Unavailable HTTP Error 503. The service is unavailable.)+IIS常见优化设置策略 - Yuliang. ...

  7. QQ收藏self_xss漏洞复现(娱乐)

    漏洞影响范围:QQ安卓版本 <=V8.8.5.5570 漏洞存在位置:QQ我的收藏功能 我的qq版本 漏洞复现 1.点击头像>>我的收藏 2.点击右上角:"+" ...

  8. Flex布局-容器项

    弹性盒子是一种用于 按行 或 按列的一维布局方法. 元素可以膨胀以填充额外的空间, 也可以 收缩 以适应更小的空间. flex 重点概览 对于 flex 重要的理解点在于: 主轴与交叉轴 换行与缩写 ...

  9. SQL 强化练习 (九)

    这两天在写一个权限的sql, 涉及 3 张表, 然后做了一个 union all 的操作, 感觉效率有点问题, 写套娃, 改来改去的做优化. 关键数据又不能贴, 嗯, 还是明天搞个假数据来说明这个关系 ...

  10. INotifyCollectionChanged 用法简介

    INotifyCollectionChanged 接口是 System.Collections.Specialized 命名空间中的一个接口,用于在集合发生更改时通知订阅者.这个接口通常在实现了集合的 ...