前言

作为小公司的WEB开发组组长, 本身为全栈工程师, 主攻方向为PHP.
最近将项目由MVC模式改为了MVVM, 做为小公司的为了节省成本, 招聘了一个新手前端, 编写VUE
新手的技术,无奈并不会配置,VUE的路由也不尽人意, 只能自己学VUE, 然后开始搭建环境.

解决问题

最终结果

访问地址

  • 正常页面访问: https://m.cheduo.com/html/route/home
  • 支付页面访问: https://m.cheduo.com/html/paydir/route-pay

为什么支付页面要写成这样, 这样就可以越过微信的只能填写五个开发目录的限制
微信授权目录填写 https://m.cheduo.com/html/paydir/

从而衍生出各大项目支付页面
a项目支付: https://m.cheduo.com/html/paydir/a-pay
b项目支付: https://m.cheduo.com/html/paydir/b-pay

路径解释说明:

  • https://m.cheduo.com/ 域名
  • html 识别是MVC模式还是MVVM模式 ( 基本上你们不需要做考虑, 此处是因为同一个域名下面有MVC的混合开发模式还有MVVM的前后端分离开发模式 )
  • route 项目名 (公司有很多不相关的小项目, 在同一个域名下面)
  • home 首页
  • pay 支付页面

开发环境

VUE脚手架, NGINX配置
其它非NGINX后端配置 可以做参考

实操解决问题

  1. 下面的代码解决下面三个问题

  2. 打包上线空白问题

  3. 静态文件访问404问题

  4. history 模式

文件路径: 项目/src/router

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import Pay from '@/components/Pay'Vue.use(Router)export default new Router({mode: 'history',base: '/html/',routes: [{path: '/route/home',component: Home},{path: '/paydir/route-pay',component: Pay}]
})

VUE改成history, 打包上线后, 空白的根本原因是path路径找不到

代码解释说明

文件路径: 项目/congfig/index.js

build: {// Template for index.htmlindex: path.resolve(__dirname, '../../../html/route/index.html'),// PathsassetsRoot: path.resolve(__dirname, '../../../html/route'),assetsSubDirectory: 'static',assetsPublicPath: '/html/route/',...

代码解释说明

nginx 配置

server{listen       99;server_name  192.168.1.24 localhost 127.0.0.1;root "F:/cheduoapp/PHP/mobile";index index.html;location /html/ {if (!-e $request_filename){rewrite  ^/html/(.*)/(.*)$  /html/$1/index.html last;}}location /html/paydir/ {rewrite ^/html/paydir/(.*)-(.*)?(.*)$ /html/$1/index.html?$3 last;}location /nginx_status{stub_status on;access_log   off;}location ~ /.*\.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;}location ~ /.*\.(js|css)?${expires      12h;}location ~ /.well-known {allow all;}location ~ /\.{deny all;}
}

关键代码:

location /html/ {if (!-e $request_filename){rewrite  ^/html/(.*)/(.*)$  /html/$1/index.html last;}}

代码解释说明

到这里已经解决了打包上线的问题

下面碰到我们公司的情况, 一个域名下面多个不关联的项目怎么办呢

正常情况下
https://m.cheduo.com/html/a/pay a项目的支付页面
https://m.cheduo.com/html/b/pay b项目的支付页面
… 等等

那么微信填写支付目录的时候就要填写
https://m.cheduo.com/html/a
https://m.cheduo.com/html/b
…等等 这样很明显5个支付目录不够用

那么只能通过NGINX重写绕过去
微信支付验证的只是URL地址
说白了就是: 只要你前面一段是你填写的信息, 你页面是怎么访问的到的并不关心

这样我们只要想办法让我填写的支付目录 https://m.cheduo.com/html/paydir/ 能指向到各个项目就OK了
于是我就设定了这样一个URL地址访问规则 https://m.cheduo.com/html/paydir/项目名称-页面名称
例如:
https://m.cheduo.com/html/paydir/route-pay
对应
https://m.cheduo.com/html/route/pay => html=识别是MVVM模式, route=项目, pay=支付页面

NGINX配置的关键代码:

location /html/paydir/ {rewrite ^/html/paydir/(.*)-(.*)?(.*)$ /html/$1/index.html?$3 last;}

这段的意思是
将链接地址 /html/paydir/项目-页面?参数
改写成 /html/项目/index.html?参数的形式

到此处结束
下面奉献上我的route完整项目跟nginx配置参数下载地址

vue路由实例+Nginx配置 点击下载

解决 VUE history模式 后端配置 微信支付目录限制5个 等问题相关推荐

  1. 解决Vue history模式下使用嵌套路由打包部署后刷新页面为空白页

    解决Vue history模式下使用嵌套路由打包部署后刷新页面为空白页 前言 问题分析 问题解决 结语 前言 众所周知,Vue路由有两种模式,默认hash模式,这种模式下url上会带"#&q ...

  2. vue history模式Nginx配置

    当你使用 history 模式时,url就像正常的url,例如 "http://yoursite.com/mapp/subpage",不过这种模式还需要后台配置支持.因为我们的应用 ...

  3. Vue Router history模式的配置方法及其原理

    转载地址:https://segmentfault.com/a/1190000019391139 vue-router分为hash和history模式,前者为其默认模式,url的表现形式为http:/ ...

  4. laravel ajax vue6,详解用vue.js和laravel实现微信支付

    注:此项是微信公众号开发,请在往下看之前,先实现网页微信授权登陆功能,具体参看我简书的另一篇文章:https://www.jb51.net/article/117004.htm 1.打开app/con ...

  5. VUE前后分离调起微信支付

    @ VUE调起微信支付 VUE前后分离调起微信支付 支付很简单,但每次都是在网上直接扒下来使用,老年人记忆,于是就自己记录一下,方便以后快速的粘贴复制; 第一步 :VUE 需要安装 微信支付模块 // ...

  6. php微信支付需要哪些设置,如何申请和配置微信支付接口?

    如何让自己的网站能够在电脑端和移动端能够使用微信支付呢?你只需要申请微信支付接口并搭建一个支持微信支付的网站(同时支持电脑端.手机.微信公众号),我们以米拓企业建站系统及米拓商城模块为例. 安装米拓企 ...

  7. 微擎公众号如何配置微信支付?

    转载自资源寺-微擎公众号如何配置微信支付? 本篇教程针对微擎对接好认证服务号后,配置微信支付的教程 多应用模块都含有微信支付等功能,比如购买会员.购买商品等,有些模块在其本身的参数设置上就需要设置微信 ...

  8. vue 微信支付的坑_vue_模式下h5微信支付

    微信公众号配置网页授权域名:填写网址域名 微信开发者平台配置url: 访问url:http://www.bc.com/pay/pay 支付授权目录:http://www.bc.com/pay/ 访问u ...

  9. vue加跨域代理静态文件404_解决vue-router history模式和跨域代理 部署到IIS时404的一些问题...

    先解决history模式的问题: 在网站根目录中创建web.config文件,内容如下: //通配所有连接 //因为是单页面,所以将所有连接重定向到 "/",就是指向我们项目中的首 ...

最新文章

  1. IT人面试必看!25个雷区和11个必问句!
  2. Google Brain与牛津大学主持最新《计算机视觉前沿》报告(146页PPT)
  3. 详细的摄像头模组工作原理!!!(转)
  4. ACM Smallest Difference
  5. 11.编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。把圆周率π定义为常量,半径定义为变量,然后进行计算并输出结果。...
  6. At least one JPA metamodel must be present!
  7. linux dns及时添加,在ARM Linux上成功实现添加DNS库
  8. 20155207王雪纯 《Java程序设计》实验一报告
  9. AI学会了视觉推理,“脑补”看不清的物体 | 李佳李飞飞等的CVPR论文
  10. (转载)年薪如何从10万跳到50万
  11. stm32呼吸灯c语言程序,基于stm32的PWM输出呼吸灯(包括stm32呼吸灯代码)
  12. 耳机煲机软件测试自学,乐味煲耳机软件教程 只需三步轻松煲耳机
  13. 基于javaweb宠物领养平台管理系统设计和实现
  14. flame linux mac,Autodesk版蓝宝石插件 GenArts Sapphire V10.0 (Mac/Linux)
  15. mysql MMM方案
  16. 如何将自己的win7电脑变身WiFi无线网络热点
  17. Linux_多线程(进程与线程的联系_pthread库_线程创建_线程等待_线程正常终止_线程取消_线程分离_pthread_t与LWP)
  18. 数据结构(Java)-树-堆排序的实现
  19. 关于把秒换算成分钟和小时的c程序
  20. 科技公司产品专利申请介绍

热门文章

  1. 水果店入门教程视频,开水果店入门教程
  2. Luogu4156 WC2016 论战捆竹竿 KMP、同余类最短路、背包、单调队列
  3. psql屏幕输出全部结果_商业摄影:小商品摄影布光技巧,电子屏幕的拍摄方法...
  4. 网件Netgear多款路由器存在任意命令注入漏洞 R7000 POC已经开始流传 据说升级固件都没用...
  5. C# Asp.net中使用Elasticsearch5.x 的NEST客户端
  6. 如何完美解决DDoS攻击
  7. 路由器与交换机的基本工作原理思维导图
  8. 超短口语|两个单词一句话
  9. 我的世界curseforge整合包服务器搭建
  10. Stay Hungry, Stay Foolish !!