码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Nginx 无法正确加载静态文件,静态文件加载404或者为html;Nginx 配置访问指定url路径项目部署;


    Nginx 无法正确加载静态文件,静态文件加载404或者为html;Nginx 配置访问指定url路径项目部署;

    问题

    1.在nginx location 定义指定url段时,加载不到页面,例如:访问一级目录为 /mypage 并且 二级目录可以是任意非空值时/mypage/xxxxx,由于部署目录实际不存在 /mypage/xxxx,因此访问返回 404问题;

    2.页面中使用相对路径引用静态文件时,使用指定url段访问页面,不能正确加载到静态文件,例如:访问一二级目录构成的url/mypage/special时,假如html中有一个静态文件引入路径为./style.css,那么在实际访问页面时加载的静态路径为http://localhost:9995/mypage/style.css,由于部署目录不存在mypage,因此导致静态文件加载失败。

    调整Nginx配置文件进行解决

    server {
        listen       9995;
        server_name  localhost;
    
        root /html;
    	
    	# 解决问题1:通过正则正确匹配指定url段,使用 try_files 指令索引 html
        location ~ /mypage/[^/]+$ {
        	# 注意:第三部分 /index.html 可以理解为,客户端对 http://localhost:9995/index.html 的直接访问,
        	#	详情参考nginx的try_files指令解释
            try_files $uri $uri/ /index.html;
        }
        
        # 解决问题2:对静态文件的访问进行url rewrite
        location ~* \.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {  
        	# 例如访问 /mypage/style.css rewrite 会重写 url 为 /style.css,此时需要确保项目根目录下存在  style.css 文件
        	# 例如访问 /mypage/imgs/bg.png rewrite 会重写 url 为 /imgs/bg.png,
        	#	此时需要确保项目存在二级目录 imgs 并且 imgs 目录下存在 bg.png 文件
        	# 注意:rewrite 第三个参数不同值的效果,此处使用 break,解释为 rewrite 之后不在重新进行 location 匹配,
        	#	以防止rewrite 之后 url 依然存在当前location匹配的后缀,导致当前location进入死循环
            rewrite ^/(.*?)(imgs.*|[^/]*)$  /$2 break;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    Nginx 指令官方文档

    location
    try_files
    rewrite

    相关Nginx 指令参考博客

    nginx Rewrite(重写地址)
    nginx路径匹配规则及配置nginx静态文件或者视频文件的本地播放等
    nginx正则及location匹配

  • 相关阅读:
    js中的sort排序
    树链剖分练习
    关于刷题时使用数组的小注意事项
    树莓派更换国内可用镜像源
    竞赛大佬在华为:网络专家出身斯坦福物理系,还有人“工作跟读博差不多”...
    【PHP】进阶知识
    【从零开始学习 SystemVerilog】8.17、SystemVerilog 约束—— Disable Randomization(关闭随机)
    java计算机毕业设计高中生学业水平测试系统源码+mysql数据库+系统+lw文档+部署
    LSTMviz配置
    【精简教程】VSCode 连接 Remix
  • 原文地址:https://blog.csdn.net/JCM_ZZ/article/details/126208475
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号