码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Nginx部署history路由模式的vue项⽬


    问题:Nginx通过location配置多个前端项⽬,如果前端使⽤了history路由,多级⽬录状态下刷新⻚⾯,nginx会报404或者500
    前端框架使⽤的是: vue-cli


    脚⼿架打包编译配置为:

    1. build: {
    2. // Template for index.html
    3. index: path.resolve(__dirname, '../dist/index.html'),
    4. // Paths
    5. assetsRoot: path.resolve(__dirname, '../dist'),
    6. assetsSubDirectory: 'static',
    7. assetsPublicPath: '/vdp',

    nginx配置为:

    1. location /vdp {
    2. alias /usr/local/app/dev/vdp/vdp-web/dist/;
    3. try_files $uri $uri/ /vdp/index.html;
    4. index index.html index.htm;
    5. }

    /vdp 是 location 的匹配规则;
    alias 指定了 location 匹配到的请求所对应的⽂件路径。


    下⾯这个配置才是关键:
    官⽹对try_files的解释 https://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
    try_files 处理在当前上下⽂中执⾏。⽂件的路径是 file根据 root和alias指令从参数构造的。
    可以通过在名称末尾指定斜杠来检查⽬录是否存在,例如 $uri/ 。如果未找到任何⽂件, uri 则会进⾏内部重定向到最后⼀个参数中指定的⽂件。

    这⾥的配置是为了⽀持 vue 的 history 路由模式,即在浏览器中输⼊URL时,不会向服务器发送请求,⽽是直接在浏览器中显示对应的⻚⾯。因此,这⾥需要将所有请求都重定向到 /vdp/index.html ,以便 vue-router 能够正确地处理路由,此处的 /vdp/index.html 是当前上下⽂中的路径;
    总结:我理解的是当⽤户输⼊ www.xxx.com/vdp/home 的时候,浏览器⾸先请求nginx服务器资源,当匹配到 /vdp/ 的时候,服务器返回了 alias ⾥⾯的资源,并在浏览器端创建了
    vdp ⽬录,将请求的资源放置于该⽬录下;当继续匹配到 /vdp/home 的时候,由于浏览器不
    会向服务器请求资源,所以最后会加载 try_files 中设置的 vdp ⽬录下的 index.htm

  • 相关阅读:
    电脑入门: 路由器初学者完全教程
    Linux MMC子系统 - 2.eMMC 5.1总线协议浅析
    【C语言】-字符串函数和内存函数(下)
    Linux基础——软件安装
    30 个常用的 Linux 命令!
    【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第40课-实时订阅后端数据
    IPKISS Tutorials 1------导入 pdk
    blender导出UE4用的FBX骨骼动画
    【SpringCloud学习07】微服务保护之Sentinel(1)
    如何将计算机上有限的物理内存分配给多个程序使用
  • 原文地址:https://blog.csdn.net/zhangyun1107892254/article/details/133750970
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号