Using shelf_static
to serve static web pages through Dart is no problem:
var staticHandler = createStatic
You can use Cascade. It creates a chain of handlers, moving to the next one if the previous one gives a 404 or 405 response.
var staticHandler = createStaticHandler(staticPath, defaultDocument:'home.html');
var routes = new Router()
..get('/item/{itemid}', handleItem);
var handler = new Cascade()
.add(staticHandler)
.add(routes.hander)
.handler;
io.serve(handler, 'localhost', port).then((server) {
print('Serving at http://${server.address.host}:${server.port}');
});