diff -ru ./albatross/httpdapp.py ../albatross-1.10-matt/albatross/httpdapp.py
--- ./albatross/httpdapp.py	2003-07-12 05:42:51.000000000 +0100
+++ ../albatross-1.10-matt/albatross/httpdapp.py	2003-07-21 15:27:07.000000000 +0100
@@ -8,6 +8,7 @@
 
 import BaseHTTPServer
 import cgi
+import mimetypes
 from cStringIO import StringIO
 from urlparse import urlsplit
 
@@ -116,12 +117,19 @@
     """
 
     def do_GET(self):
+        # Try the static resources first
+        for uri_path, fs_path in self.server.static_resources.items():
+            if self.path.startswith(uri_path):
+                path = self.path.split(uri_path)[1]
+                self.send_file('%s%s' % (fs_path, path))
+                return
         self.process_request()
 
     def do_POST(self):
         self.process_request()
 
     def process_request(self):
+        '''Process a request to the Albatross app'''
         self.log_request()
         req = Request(self)
         self.server.app.run(req)
@@ -132,11 +140,54 @@
         if req.status() == 200:
             self.wfile.write(req.data.getvalue())
 
+    def send_file(self, path):
+        '''Send a file directly from the filesystem'''
+        
+        self.log_request()
+        
+        f = None
+        data = None
+        mime_type = None
+
+        try:
+            try:
+                f = file(path)
+                data = f.read()
+            except IOError, e:
+                print e
+        finally:
+            if f:
+                f.close()
+
+        if not data:
+            self.send_response(404)
+            self.end_headers()
+        else:
+            self.send_response(200)
+            self.send_header('Content-Type', mimetypes.guess_type(path)[0])
+            self.end_headers()
+            self.wfile.write(data)
+
 
 class HTTPServer(BaseHTTPServer.HTTPServer):
 
-    """Simple, standalone HTTP server for Albatross applications."""
+    """
+    Simple, standalone HTTP server for Albatross applications.
+    
+    HTTPServer is a simple web server dedicated to processing requests and
+    mapping that request through to Albatross. It can also serve static
+    resources such as images, stylesheets etc directly from the filesystem.
+    """
 
-    def __init__(self, app, port):
-        BaseHTTPServer.HTTPServer.__init__(self, ('', port), RequestHandler)
+    def __init__(self, app, port, static_resources={}):
+        '''
+        Create an HTTP server for the Albatross application, app,
+        and listen for requests on the specified port.
+
+        static_resources is an optional dictionary that maps uri paths to
+        a corresponding filesystem path. Static resources are served directly
+        from the filesystem without involving the Albatross application.
+        '''
+        BaseHTTPServer.HTTPServer.__init__( self, ('', port), RequestHandler)
         self.app = app
+        self.static_resources = static_resources
