serveStaticFiles method

void serveStaticFiles(
  1. String directoryPath, {
  2. String routePrefix = '/',
  3. String defaultDocument = 'index.html',
  4. bool listDirectories = false,
  5. bool serveFilesOutsidePath = false,
})

Serves files from directoryPath under routePrefix.

Example:

  • routePrefix: '/assets' serves /assets/app.css from <directoryPath>/app.css.
  • routePrefix: '/' serves static files from the root path.

Implementation

void serveStaticFiles(
  String directoryPath, {
  String routePrefix = '/',
  String defaultDocument = 'index.html',
  bool listDirectories = false,
  bool serveFilesOutsidePath = false,
}) {
  final normalizedPrefix = _normalizeRoutePrefix(routePrefix);

  final staticHandler = createStaticHandler(
    directoryPath,
    defaultDocument: defaultDocument,
    listDirectories: listDirectories,
    serveFilesOutsidePath: serveFilesOutsidePath,
  );

  if (normalizedPrefix == '/') {
    mount('/', staticHandler);
    return;
  }

  // Mounted handlers require a trailing slash in the route prefix.
  mount('$normalizedPrefix/', staticHandler);

  // Normalize prefix requests without trailing slash.
  get(normalizedPrefix, (Request request) {
    return Response.movedPermanently('${request.requestedUri.path}/');
  });
}