【问题标题】:Base URL for HTML and CSSHTML 和 CSS 的基本 URL
【发布时间】:2011-07-06 05:13:54
【问题描述】:

我有一个问题,虽然我可以找到相关信息,但我想这是否正是我想知道的。

问题是,我在http://localhost/site 上有一个网站。
现在,当我创建一个链接时,比如说<a href="/posts">,它链接到http://localhost/posts 而不是http://localhost/site/posts
如果我删除斜线(<a href="posts">),它工作正常,这将是最接近,也许是最简单的解决方案,但我想知道为什么链接忽略文件所在的文件夹?

我也想知道这是否可以用 .htaccess 或其他东西来解决。

我读过以 / 开头的链接使其“绝对”。因此,以 / 开头的链接仅用于直接链接到根目录,或者供存储在根目录的站点使用(在这种情况下,它没有多大意义?)?

【问题讨论】:

    标签: html css url path hyperlink


    【解决方案1】:

    URL 开头的前导“/”通知网络浏览器给定的路径是absolute(相对于网络服务器根目录),即如果您链接到/posts,那么您知道生成的链接将指向http://www.mysite.com/posts

    如果您不提供前导“/”(并且您没有提供完整的 url,例如 http://www.mysite.com/posts),那么通常该 url 是 relative,并且给出的任何页面都是 relatvie到当前正在查看的页面。

    例如:

    page being viewed               link url             target page
    ------------------------------------------------------------------------------
    www.mysite.com/site              link.html            www.mysite.com/site/link.html
    www.mysite.com/site              ../link.html         www.mysite.com/link.html
    www.mysite.com/some/other/page   link.html            www.mysite.com/some/other/page/link.html
    www.mysite.com/some/other/page   ../../../link.html   www.mysite.com/link.html
    

    使用绝对链接还是相对链接完全由您决定 - 相对链接的优势在于,如果您的网站移动,您网站上页面之间的链接仍然可以正常工作(例如,如果您的网站移动到 @ 987654326@,那么任何绝对链接如www.mysite.com/originalpath/home 将不再起作用。

    您应该查看以下站点以获取有关相对 url 的更完整说明:

    【讨论】:

    • 我在 JS 中有一些代码,其中所有 URL 都以斜杠开头,但我没有该站点位于根文件夹中。因此,为了使 URL 正常工作,我必须将站点的基本 URL 添加到所有链接?没有别的办法了吗? (或使用 标签,我想避免使用)
    • @renocor 如果您在 JavaScript 中构建链接,那么您可能需要考虑从 window.location 属性等内容构建 URL。
    【解决方案2】:

    您的站点根目录是 localhost,尽管您假设 site 是您的站点根目录。当你使用 / 时,它是相对于 localhost 的,因为它是一个绝对链接。

    【讨论】:

      【解决方案3】:

      【讨论】:

      • ./ 表示 当前 目录,而不是基础目录。
      猜你喜欢
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 2012-09-13
      • 2011-04-18
      • 2012-08-27
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      相关资源
      最近更新 更多