Having links relative to root?

后端 未结 6 914
臣服心动
臣服心动 2020-11-22 17:02

Is there a way to have all links on a page be relative to the root directory?

For example, on www.example.com/fruits/apples/apple.html I could have a li

相关标签:
6条回答
  • 2020-11-22 17:55

    If you are creating the URL from the server side of an ASP.NET application, and deploying your website to a virtual directory (e.g. app2) in your website i.e. http://www.yourwebsite.com/app2/

    then just insert

    <base href="~/" />
    

    just after the title tag.

    so whenever you use root relative e.g.

    <a href="/Accounts/Login"/> 
    

    would resolve to "http://www.yourwebsite.com/app2/Accounts/Login"

    This way you can always point to your files relatively-absolutely ;)

    To me this is the most flexible solution.

    0 讨论(0)
  • 2020-11-22 17:56

    A root-relative URL starts with a / character, to look something like <a href="/directoryInRoot/fileName.html">link text</a>.

    The link you posted: <a href="fruits/index.html">Back to Fruits List</a> is linking to an html file located in a directory named fruits, the directory being in the same directory as the html page in which this link appears.

    To make it a root-relative URL, change it to:

    <a href="/fruits/index.html">Back to Fruits List</a>
    

    Edited in response to question, in comments, from OP:

    So doing / will make it relative to www.example.com, is there a way to specify what the root is, e.g what if i want the root to be www.example.com/fruits in www.example.com/fruits/apples/apple.html?

    Yes, prefacing the URL, in the href or src attributes, with a / will make the path relative to the root directory. For example, given the html page at www.example.com/fruits/apples.html, the a of href="/vegetables/carrots.html" will link to the page www.example.com/vegetables/carrots.html.

    The base tag element allows you to specify the base-uri for that page (though the base tag would have to be added to every page in which it was necessary for to use a specific base, for this I'll simply cite the W3's example:

    For example, given the following BASE declaration and A declaration:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
    <HTML>
     <HEAD>
       <TITLE>Our Products</TITLE>
       <BASE href="http://www.aviary.com/products/intro.html">
     </HEAD>
    
     <BODY>
       <P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
     </BODY>
    </HTML>
    

    the relative URI "../cages/birds.gif" would resolve to:

    http://www.aviary.com/cages/birds.gif
    

    Example quoted from: http://www.w3.org/TR/html401/struct/links.html#h-12.4.

    Suggested reading:

    • http://www.motive.co.nz/glossary/linking.php
    • http://www.communitymx.com/content/article.cfm?cid=AEDCC52C4AD230AD
    0 讨论(0)
  • 2020-11-22 17:59

    To give a URL to an image tag which locates images/ directory in the root like

    `logo.png`
    

    you should give src URL starting with / as follows:

    <img src="/images/logo.png"/>
    

    This code works in any directories without any troubles even if you are in branches/europe/about.php still the logo can be seen right there.

    0 讨论(0)
  • 2020-11-22 18:00

    Use this code "./" as root on the server as it works for me

    <a href="./fruits/index.html">Back to Fruits List</a>
    

    but when you are on a local machine use the following code "../" as the root relative path

    <a href="../fruits/index.html">Back to Fruits List</a>
    
    0 讨论(0)
  • 2020-11-22 18:01
    <a href="/fruits/index.html">Back to Fruits List</a>
    
    0 讨论(0)
  • 2020-11-22 18:02

    Use

    <a href="/fruits/index.html">Back to Fruits List</a>
    

    or

    <a href="../index.html">Back to Fruits List</a>
    
    0 讨论(0)
提交回复
热议问题