shelf_virtual_directory 1.0.0
shelf_virtual_directory: ^1.0.0 copied to clipboard
This package provides a virtual directory to serve static files from a directory.
shelf_virtual_directory #
This package provides Handler, Router and Cascade to serve static files from the dart shelf server and can work with websockets.
| Provider | UseCase |
|---|---|
Handler |
Can be used to serve as a handler for Pipeline or for Cascade |
Router |
Can be used to mount as a subroute |
Cascade |
Can be used directly serve from shelf server |
Setup #
-
Add to pubspec.yaml file
dependencies: shelf_virtual_directory: latest_version -
Get dependencies
pub get -
Import
import 'package:shelf_virtual_directory/shelf_virtual_directory.dart'; -
Create a instance of
ShelfVirtualDirectorywith a directory../webfinal virtualDir = ShelfVirtualDirectory('../web');
Handling different cases #
-
Using as a
Handlerfinal virDirHandler = ShelfVirtualDirectory('../web').handler; final staticFileHandler = const Pipeline() .addMiddleware(logRequests()) .addHandler(virDirHandler);//used as a handler io.serve(Cascade().add(staticFileHandler).handler,address,port).then((server){ print('Server is sunning at ${server.address}:${server.port}'), }); -
Using as a
Routerfinal router = Router('/',ShelfVirtualDirectory('../web').router); // localhost:8080/ //or final router = Router('/home/',ShelfVirtualDirectory('../web').router); //localhost:8080/home/ -
Using as a
Cascadeimport 'package:shelf/shelf_io.dart' as io show serve; final cascade = ShelfVirtualDirectory('web').cascade; io.serve(cascade,'localhost',8080).then((server){ print('Server is sunning at ${server.address}:${server.port}'), })
Contrubitions #
All contrubitions are welcomed.