private boolean canServeUri(String uri, File homeDir) {
   boolean canServeUri;
   File f = new File(homeDir, uri);
   canServeUri = f.exists();
   if (canServeUri) {
     // TODO: more rigorous checks for handling "../"?
     File base = f.getAbsoluteFile();
     String appName = ODKFileUtils.extractAppNameFromPath(base);
     String relativePath = ODKFileUtils.asRelativePath(appName, base);
     Set<String> exclusions = ODKFileUtils.getDirectoriesToExcludeFromWebServer();
     // further restrict relativePath to not reference one of the private directories
     String[] parts = relativePath.split("/");
     canServeUri = parts.length > 1 && !exclusions.contains(parts[1]);
   }
   return canServeUri;
 }