How to properly reference local resources in HTML?

HtmlSrcRef

Html Problem Overview


As it turns out, referencing local resources can be a rub point for some. I'm looking for a canonical answer to local resource referencing, and what they mean.

Take these examples, what is the difference between these reference paths?

  • <img src="myfile.png" /> (no leading slash)
  • <img src="/myfile.png" /> (with leading slash)
  • <img src="folder/myfile.png" /> (no leading slash / in subfolder)
  • <img src="/folder/myfile.png" /> (with leading slash / in sub folder)
  • <img src="../folder/myfile.png" /> (with dots and a leading slash / in sub folder)

Html Solutions


Solution 1 - Html

  • A leading slash tells the browser to start at the root directory.
  • If you don't have the leading slash, you're referencing from the current directory.
  • If you add two dots before the leading slash, it means you're referencing the parent of the current directory.

Take the following folder structure

demo folder structure

notice:

  • the ROOT checkmark is green,
  • the second checkmark is orange,
  • the third checkmark is purple,
  • the fourth checkmark is yellow

Now in the index.html.en file you'll want to put the following markup

<p>
	<span>src="check_mark.png"</span>
	<img src="check_mark.png" />
	<span>I'm purple because I'm referenced from this current directory</span>
</p>

<p>
	<span>src="/check_mark.png"</span>
	<img src="/check_mark.png" />
	<span>I'm green because I'm referenced from the ROOT directory</span>
</p>

<p>
	<span>src="subfolder/check_mark.png"</span>
	<img src="subfolder/check_mark.png" />
	<span>I'm yellow because I'm referenced from the child of this current directory</span>
</p>

<p>
	<span>src="/subfolder/check_mark.png"</span>
	<img src="/subfolder/check_mark.png" />
	<span>I'm orange because I'm referenced from the child of the ROOT directory</span>
</p>

<p>
	<span>src="../subfolder/check_mark.png"</span>
	<img src="../subfolder/check_mark.png" />
	<span>I'm purple because I'm referenced from the parent of this current directory</span>
</p>

<p>
	<span>src="subfolder/subfolder/check_mark.png"</span>
	<img src="subfolder/subfolder/check_mark.png" />
	<span>I'm [broken] because there is no subfolder two children down from this current directory</span>
</p>

<p>
	<span>src="/subfolder/subfolder/check_mark.png"</span>
	<img src="/subfolder/subfolder/check_mark.png" />
	<span>I'm purple because I'm referenced two children down from the ROOT directory</span>
</p>

Now if you load up the index.html.en file located in the second subfolder
http://example.com/subfolder/subfolder/

This will be your output

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionChase FlorellView Question on Stackoverflow
Solution 1 - HtmlChase FlorellView Answer on Stackoverflow