代码之家  ›  专栏  ›  技术社区  ›  Alan Omar

没有当前目录的相对路径

  •  0
  • Alan Omar  · 技术社区  · 7 年前

    大家好,我有一个html文件,带有以下标记:

    <link rel="stylesheet" href="/lib/css/classic.css">
    

    问题是,当我在浏览器中打开该文件时,它会抱怨找不到classic.css文件,而是在将当前目录添加到href:

    <link rel="stylesheet" href="./lib/css/classic.css">
    

    它只是工作,更糟的是,我有一堆类似的文件,每一个都有几十个相对路径,我如何解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Obsidian Age    7 年前

    讽刺的是,这与 the first question I asked on SO .

    你是从 localhost 现在,CSS文件从 file:// 协议。当您将代码移动到托管网站时,链接将使用根相对前缀自动为您解析( / ).

    为了让他们继续工作 本地服务器 ,您有许多选项:

    • 利用子域根被认为是子域的根。也就是说, site.localhost 将解析链接 /lib/css/classic.css (尽管 localhost/site 不会的)在这种情况下,您需要将服务器配置为使用 Virtual Name Hosting .
    • 利用亲戚 <link> ,使用 ../ 向上移动这可能看起来像:
      <link rel="stylesheet" href="current/../lib/css/style.css" />
    • 只需使用大量遍历,以确保到达文档根目录,并从那里开始工作:
      <link rel="stylesheet" href="../../../../../lib/css/style.css" />
    • 设置a <base> URL 并使用相关链接:
      <base href="/lib/css">
      <link rel="stylesheet" href="style.css" />

    我建议自己使用第四个选项,尽管可能需要稍加调整。