Specifying base url for css

HtmlCssUrlPath

Html 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.

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
QuestionrhleeView Question on Stackoverflow
Solution 1 - HtmlBalusCView Answer on Stackoverflow
Solution 2 - HtmlBBaysingerView Answer on Stackoverflow
Solution 3 - HtmlGuybrushView Answer on Stackoverflow