问题
This has been bugging me for a long time so I need to ask the question.
What is the difference between /
and ./
, is it just down to server settings?
For example, if we were looking for an images folder in the root directory we would write:
<img src="/images">
However, another server will only accept it as follows:
<img src="./images">
It's not a biggie, but in an ideal world I'd like to think I could transfer my sites to another server relatively easily without having to update minor details like these.
Of course, I can declare it in PHP and set it once in a config file, but it really is bugging me. Why is there two methods for declaring the root?
回答1:
To reference files relative to the current page, you can either write the path plainly without a prefix, or you can be explicit about it by prefixing with ./
. To reach files with paths relative to the root of your site, you prefix the path with /
.
Summary
/
absolute path (full path to resource from root directory)./
relative path from current directory (equal to not specifying any folder prefix)../
relative path from parent directory../../
relative path from parent of parent
Examples
Current URL Resource path Resolves to
/pages/home.html ./picture.jpg /pages/picture.jpg
/pages/home.html ../img/picture.jpg /img/picture.jpg
/pages/about/home.html /img/picture.jpg /img/picture.jpg
/pages/about/home.html img/picture.jpg /pages/about/img/picture.jpg
/home.html img/picture.jpg /img/picture.jpg
回答2:
This is the same only if the source page (the one containing this HTML) is itself at the root of the domain.
In the general case, ./images
is equivalent to images
.
回答3:
This has nothing to do with HTML, apart from the fact that URLs are used in HTML, too. This is defined in URL specifications. Briefly, ./ is relative to current base URL, and / is relative to the server root (technically, it refers to the server part of the base URL).
来源:https://stackoverflow.com/questions/15357693/differences-in-declaring-your-root-directory-in-html