The Ruby library, Sprockets, allows you to set up an environment consisting of one or more load paths, and then can serve static files under those paths over HTTP.
It also will do ETags and preprocessing (for example, if you want to use CoffeeScript or Sass)
Has anyone written something like this in Haskell? (preferably using Wai?)
wai-app-static provides a WAI application for serving static files. This could be combined with a WAI middleware to preprocess ResponseFile constructors with certain file extension to deliver the desired functionality.