I'm using relative URL in attributes like href
and src
. Do I really need to use ./
and ../
before the paths to correctly establish the link?
When I'm done coding index.html, I copy the code and use it on others .html files of my project. I find it frustrating having to correct every path then.
My projects folder structure is like:
website-project folder
index.html
css folder
style.css
img folder
image.png
about folder
about.html
If I use index.html
code to start about.html
I need to change every path begging from ./
to ../
. Using "Find & Replace" tool makes it easier but still it would be nicer if I could link to paths based on the root folder and not the present folder. Ex:
Using
href="website-project/img/image.png"
inside about.html
would link to website-project/img/image.png
instead of website-project/about/img/image.png
which leads to an error.
UPDATE JULY 07 2016
Inside index.html
page if I make a <a>
with href="/about/about.html
instead of linking to:
file:///home/guizo/Documents/website-project/about.html
it links to:
file:///about/about.html
The same goes on for the others links:
Try using
href="/img/image.png"
/
refers to your root directory.
EDIT:
The above will not work for local static websites. In these cases, you should try using the <BASE href />
tag which tags links on to a fixed base address. It can be used as follows:
For index.html
:
<html>
<head>
<title>index</title>
<BASE href="file:///home/guizo/Documents/website-project/" />
</head>
<body>
<a href="about/about.html">Go to about</a>
</body>
</html>
For about.html
:
<html>
<head>
<title>About</title>
<BASE href="file:///home/guizo/Documents/website-project/" />
</head>
<body>
<a href="index.html">Go to index</a>
</body>
</html>