You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

响应式菜单栏在下级目录下搜索、汉堡等图标不显示问题排查

问题原因排查及解决方案

核心问题:Font Awesome 样式资源加载失败

图标不显示的根本原因是不同层级页面引用Font Awesome资源的相对路径不匹配:

  • 位于/airlines/malaysia/index.htm层级页面时,你使用的相对路径可以正常命中Font Awesome样式文件
  • 进入更深一级的/airlines/malaysia/airasia/index.htm页面时,原相对路径会向上多跳转一层,找不到对应的样式文件,无法渲染fa-search、fa-bars、fa-times这类图标。

次要问题:现有代码存在语法报错

你提供的JS代码中,console.log(barIcon)执行时barIcon还未定义,会在控制台抛出引用错误,虽不直接导致图标消失,但会影响后续JS逻辑的稳定性。

修复方案

  1. 修改Font Awesome资源引用为绝对路径
    把页面head中引入Font Awesome的代码从相对路径(例如../../css/font-awesome.min.css)改为根路径开头的绝对路径,示例:
    <link rel="stylesheet" href="/css/font-awesome.min.css">
    根路径开头的地址会固定从站点根目录查找资源,不受当前页面层级影响。

  2. 修正JS代码的未定义变量问题
    删除无用的console.log(barIcon)代码,或者将其移动到barIcon变量定义之后的位置,修改后的JS代码参考:

<script>
function myFunction() {
  var x = document.getElementById("nav");
  if (x.className === "navbar") {
    x.className += " responsive";
    var barIcon = document.getElementsByClassName('fa-bars')[0];
    barIcon.classList.add("fa-times");
    barIcon.classList.remove("fa-bars");
  } else {
    var closeIcon = document.getElementsByClassName('fa-times')[0];
    closeIcon.classList.remove("fa-times");
    closeIcon.classList.add("fa-bars");
    x.className = "navbar";
  }
}
</script>
  1. 可选优化:统一导航链接、搜索提交地址为绝对路径
    你当前导航栏的跳转链接、搜索form的action都使用了相对路径,在深层级页面也可能出现404问题,建议统一修改为根路径开头的绝对路径,例如:
  • 把../../../passenger_guides/index.htm改为/passenger_guides/index.htm
  • 把action="search.htm"改为action="/search.htm"

内容的提问来源于stack exchange,提问作者sexy18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:48:02