You are missing the point:
C:\Users\Public\whatever
is not an URL! If you put protocol name, like
file://
in front (
background-image:url("file://C:\Users\Public\Pictures\Sample Pictures\header-preview.jpg");
), it will be an URL, but not one for web. The URL of the background image has to be one visible from client side, thus sitting on one or an other web server out there. Your C drive is not visible from all cleints - I hope so for your sake. Some browsers are not requiring double quotes, but it is part of the standard.
So in general such an attribute would look like:
body {
background-image:url("/images/header-preview.jpg");
}
Please note that this is a relative URL but absolute to the web server root.
If the image is located at some place relative to the actual styles sheet file (not the document!), you can use regular relative path notation, like
background-image:url("../images/header-preview.jpg");
. Of course you can use whole URI-s also, like:
background-image:url("http://some.server.com/images/header-preview.jpg");
.
See:
http://www.w3schools.com/cssref/pr_background-image.asp[
^]