---
name: "Plack::App::File"
section: "3pm"
platform: "linux"
package: "libplack-perl"
version: "1.0051-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Plack::App::File"
---

# Plack::App::File(3pm)

Serve static files from root directory

## NAME

Plack::App::File - Serve static files from root directory

## SYNOPSIS

```
  use Plack::App::File;
  my $app = Plack::App::File->new(root => "/path/to/htdocs")->to_app;
  # Or map the path to a specific file
  use Plack::Builder;
  builder {
      mount "/favicon.ico" => Plack::App::File->new(file => '/path/to/favicon.ico')->to_app;
  };
```

## DESCRIPTION

This is a static file server PSGI application, and internally used by Plack::Middleware::Static. This application serves files from the document root if the path matches with the local file. Use Plack::App::Directory if you want to list files in the directory as well.

## CONFIGURATION

- root

  Document root directory. Defaults to `"."` (current directory)

- file

  The file path to create responses from. Optional.

  If it's set the application would **ALWAYS** create a response out of the file and there will be no security check etc. (hence fast). If it's not set, the application uses `"root"` to find the matching file.

- encoding

  Set the file encoding for text files. Defaults to `"utf-8"`.

- content\_type

  Set the file content type. If not set Plack::MIME will try to detect it based on the file extension or fall back to `"text/plain"`. Can be set to a callback which should work on `$_`\[0\] to check full path file name.

## AUTHOR

Tatsuhiko Miyagawa

## SEE ALSO

Plack::Middleware::Static Plack::App::Directory
