How to go up a level in the src path of a URL in HTML?
Asked Answered
R

7

128

I am storing style sheets in {root}/styles while images in {root}/images for a website. How do I give the path in the style sheets to go look in the images directory for the specified images?

e.g. In background-image: url('/images/bg.png');

Rahn answered 26/1, 2011 at 22:42 Comment(0)
A
214

Use .. to indicate the parent directory:

background-image: url('../images/bg.png');
Ation answered 26/1, 2011 at 22:43 Comment(3)
I read that elsewhere as well- but it doesn't work! (at least in Chrome)Rahn
It does. However note that the location is relative to the CSS file's location, not the document embedding the CSS file.Bridesmaid
@Bridesmaid It should be if we're using only inline CSSHargreaves
M
99

Here is all you need to know about relative file paths:

  • Starting with / returns to the root directory and starts there

  • Starting with ../ moves one directory backward and starts there

  • Starting with ../../ moves two directories backward and starts there (and so on...)

  • To move forward, just start with the first sub directory and keep moving forward.

Click here for more details!

Mccollum answered 16/11, 2016 at 8:48 Comment(0)
B
54

Use ../:

background-image: url('../images/bg.png');

You can use that as often as you want, e.g. ../../images/ or even at different positions, e.g. ../images/../images/../images/ (same as ../images/ of course)

Bridesmaid answered 26/1, 2011 at 22:43 Comment(0)
C
10

In Chrome when you load a website from some HTTP server both absolute paths (e.g. /images/sth.png) and relative paths to some upper level directory (e.g. ../images/sth.png) work.

But!

When you load (in Chrome!) a HTML document from local filesystem you cannot access directories above current directory. I.e. you cannot access ../something/something.sth and changing relative path to absolute or anything else won't help.

Cnemis answered 26/1, 2011 at 22:53 Comment(3)
Upon rechecking, I can report that the local file system relative-paths by using ../ do work fine - or at least does work fine in this specific case!Rahn
It does work on linux and windows, not on mac (my experience)Restoration
Links do not count here, as there is no same origin check for them. Also this answer is 6 years old so browsers may have changed a lot.Cnemis
C
1

If you store stylesheets/images in a folder so that multiple websites can use them, or you want to re-use the same files on another site on the same server, I have found that my browser/Apache does not allow me to go to any parent folder above the website root URL. This seems obvious for security reasons - one should not be able to browse around on the server any place other than the specified web folders.

Eg. does not work: www.mywebsite.com/../images

As a workaround, I use Symlinks:

Go to the directory of www.mywebsite.com Run the command ln -s ../images images

Now www.mywebsite.com/images will point to www.mywebsite.com/../images

Claud answered 4/3, 2020 at 10:32 Comment(2)
what is symlinks?Astonish
"A symlink (also called a symbolic link) is a type of file in Linux that points to another file or a folder on your computer. Symlinks are similar to shortcuts in Windows. Some people call symlinks "soft links" – a type of link in Linux/UNIX systems – as opposed to "hard links." " ------ from freecodecamp.org/news/…Claud
L
0

Supposing you have the following file structure:

-css
  --index.css
-images
  --image1.png
  --image2.png
  --image3.png

In CSS you can access image1, for example, using the line ../images/image1.png.

NOTE: If you are using Chrome, it may doesn't work and you will get an error that the file could not be found. I had the same problem, so I just deleted the entire cache history from chrome and it worked.

Luralurch answered 1/11, 2018 at 10:11 Comment(0)
C
-2

if you want to go to the root of the folder use / or ctrl+space if you want to go to the back folder use ../ and ctrl+space if it dont suggest and not use the live server if you use the ../

Cummins answered 23/2, 2023 at 8:5 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.