Specifying base url for css
HtmlCssUrlPathHtml Problem Overview
I had to split up a long css file. I put the smaller css files within a styles
directory.
Now I have to update the the urls to go up one level with the ../
notation.
Is there anyway to specify the base URL from which to load assets like with the base tag in HTML, but with CSS?
Html Solutions
Solution 1 - Html
No, there isn't. I suggest to place the CSS images in at least the same level as the CSS file so that you don't need to go backwards in the path. E.g. /css
folder for CSS files and /css/images
folder for CSS images. Then you can consistently use url('images/name.ext')
for CSS images. This way you can place the root /css
folder practically everywhere without fiddling with the image URL's.
Solution 2 - Html
As an alternative, you could dynamically add a class to your body tag, and use that in selectors to override css URLs depending on which directory your file is served from.
Solution 3 - Html
An alternative way to set the base directory in the CSS (which seems to be impossible) is to set the base directory of the HTML document with the <base>
tag. This tag is not well known in the community but I found a nice tutorial in the web:
https://webdesign.tutsplus.com/articles/quick-tip-set-relative-urls-with-the-base-tag--cms-21399
It seems to be totally a good solution.