':param site: The site that\'s building this static file
:param path: The location where this static file is to be found
:param relative_to: Location this path is relative to. Optional, and defaults to the site\'s path.'

def __init__(self, site, path, relative_to=None):

    self.site = site
    self.path = path
    self.relative_to = relative_to
    (_static_path, filename) = os.path.split(path)
    self.src_dir = os.path.join('static', _static_path)
    self.src_filename = filename
    try:
        (self.src_name, self.src_extension) = filename.rsplit('.', 1)
    except ValueError:
        self.src_name = filename
        self.src_extension = ''
    self._preprocessing_path = self.pre_process()
    if (self.final_extension in self.site.fingerprint_extensions):
        checksum = calculate_file_checksum(self._preprocessing_path)
        new_name = '{0}.{1}'.format(self.src_name, checksum)
    else:
        new_name = self.src_name
    self.link_url = ('/' + os.path.join(self.src_dir, '{0}.{1}'.format(self.src_name, self.final_extension)))
    self.final_name = '{0}.{1}'.format(new_name, self.final_extension)
    if (not hasattr(self.site, '_static_file_cache')):
        self.site._static_file_cache = {}
