使用shelf_static
通过 Dart 提供静态网页是没有问题的:
var staticHandler = createStaticHandler(staticPath, defaultDocument:'home.html');
io.serve(staticHandler, 'localhost', port).then((server) {
print('Serving at http://${server.address.host}:${server.port}');
});
我可以shelf_route
很好地用于动态网页:
Router routes = new Router()
..get('/item/{itemid}', handler.doItem);
var handler = const shelf.Pipeline()
.addHandler(routes.handler);
io.serve(handler, 'localhost', port).then((server) {
print('Serving at http://${server.address.host}:${server.port}');
});
但我正在努力向动态版本添加静态处理程序。我尝试过的事情包括:
Router routes = new Router()
..get('/item/{itemid}', handler.doItem)
..get('/', staticHandler);
或者 ...
..get('/.*', staticHandler);
或者 ...
..get('/{any}', staticHandler);
home.html
如果我请求,所有这些都会给我指定的默认页面,http://localhost:8080/
但明确要求现有页面http://localhost:8080/home.html
给我 Not Found。
我什至不应该尝试这样做shelf_static
吗?如果不是,那么正确的方法是什么?谢谢!