I don't think there's an easy generic solution to this problem because ultimately it's the end-user's browser that controls file access.
Having said that, Thymol has 3 basic file loading control parameters that can be used cover most scenarios these are: thProtocol, thRoot and thPath. Each of these has a one-to-one mapping to a Thymol internal variable:
What I ended up doing was writing a helper function to figure out the root path for you given the page uri, the thymol script path (relative), and the relative path from the directory thymol is in to the root path. So, in the thymol.js file code just after the "path" variable is defined, I set the global variable thRoot using the function:
thRoot = getRootPath(location.href, path, '..');
This enables people to check the project out to arbitrary directory locations on their workstation and have thymol still work statically. I was not able to get the configurePreExecution approach to work. It would fire, but seemingly not affect the loaded thymol instance. I might be putting it in the wrong place though.
This sets the default protocol to match the protocol used to load the page. It seems like this could be the automatic default thymol uses unless specifically overridden. I can't think of a case where you'd want to though.