diff --git a/scripts/build_web_assets.py b/scripts/build_web_assets.py
index 8268787..0521bd7 100755
--- a/scripts/build_web_assets.py
+++ b/scripts/build_web_assets.py
@@ -99,7 +99,7 @@
         string_content_new = re.sub("((src|href)=[\"'])(" + re.escape(key) + ")([\"'])", "\\1" + replace_name + "\\4", string_content)
         if string_content_new != string_content:
             print("    Replaced {}".format(key))
-            print("    With {}".format(replace_name))
+            print("        With {}".format(replace_name))
             string_content = string_content_new
 
     return string_content.encode()
@@ -184,8 +184,8 @@
                     if match:
                         depends_on[full_filepath].append(full_replacename)
 
-                elif ext == ".js":
-                    match = re.search("([\"'])(" + relative_replacename + ")([\"'])", file_content)
+                elif ext == ".js" or ext == ".css":
+                    match = re.search("([\"'](\.\./)*)(" + relative_replacename + ")([\"'\?])", file_content)
                     if match:
                         depends_on[full_filepath].append(full_replacename)
 
@@ -206,12 +206,13 @@
             with open(full_filepath, 'rb') as input_file:
                 file_content = input_file.read()
             relative_path, relative_path_escaped = get_relative_path(full_filepath)
+            extension = os.path.splitext(relative_path)[1]
 
             print("Including {:<40} size {:>7}".format(relative_path, len(file_content)))
 
-            if relative_path.endswith(".html") or relative_path == "/":
+            if extension == ".html" or relative_path == "/":
                 new_file_content = filter_html(sha1_list, file_content)
-            elif relative_path.endswith(".js"):
+            elif extension == ".js" or extension == ".css":
                 new_file_content = filter_js(sha1_list, file_content)
             else:
                 new_file_content = file_content
@@ -248,10 +249,6 @@
             if relative_path == "static/index.html":
                 relative_path = "/"
                 relative_path_sha1 = "/"
-            # TODO(ed), handle woff files better.  They are referenced in CSS, which at this
-            # point isn't scrubbed with a find and replace algorithm
-            elif relative_path.endswith(".woff"):
-                relative_path_sha1 = relative_path
             else:
                 relative_path_sha1 = "/" + get_sha1_path_from_relative(relative_path, sha1)
 
@@ -271,7 +268,7 @@
                 # if we have a valid sha1, and we have a unique path to the resource
                 # it can be safely cached forever
                 if sha1 != "" and relative_path != relative_path_sha1:
-                    environment["CACHE_FOREVER_HEADER"] = CACHE_FOREVER_HEADER      
+                    environment["CACHE_FOREVER_HEADER"] = CACHE_FOREVER_HEADER
 
             content = CPP_MIDDLE_BUFFER.format(
                 **environment
