Struct rocket_contrib::serve::StaticFiles[][src]

pub struct StaticFiles { /* fields omitted */ }
Expand description

Custom handler for serving static files.

This handler makes it simple to serve static files from a directory on the local file system. To use it, construct a StaticFiles using either StaticFiles::from() or StaticFiles::new() then simply mount the handler at a desired path. When mounted, the handler will generate route(s) that serve the desired static files.

Options

The handler’s functionality can be customized by passing an Options to StaticFiles::new(). Additionally, the rank of generate routes, which defaults to 10, can be set via the StaticFiles::rank() builder method.

Example

To serve files from the /static directory at the /public path, allowing index.html files to be used to respond to requests for a directory (the default), you might write the following:

use rocket_contrib::serve::StaticFiles;

fn main() {
    rocket::ignite()
        .mount("/public", StaticFiles::from("/static"))
        .launch();
}

With this set-up, requests for files at /public/<path..> will be handled by returning the contents of /static/<path..>. Requests for directories at /public/<directory> will be handled by returning the contents of /static/<directory>/index.html.

If your static files are stored relative to your crate and your project is managed by Cargo, you should either use a relative path and ensure that your server is started in the crate’s root directory or use the CARGO_MANIFEST_DIR to create an absolute path relative to your crate root. For example, to serve files in the static subdirectory of your crate at /, you might write:

use rocket_contrib::serve::StaticFiles;

fn main() {
    rocket::ignite()
        .mount("/", StaticFiles::from(concat!(env!("CARGO_MANIFEST_DIR"), "/static")))
        .launch();
}

Implementations

Constructs a new StaticFiles that serves files from the file system path. By default, Options::Index is set, and the generated routes have a rank of 10. To serve static files with other options, use StaticFiles::new(). To choose a different rank for generated routes, use StaticFiles::rank().

Example

Serve the static files in the /www/public local directory on path /static.

use rocket_contrib::serve::StaticFiles;

fn main() {
    rocket::ignite()
        .mount("/static", StaticFiles::from("/www/public"))
        .launch();
}

Exactly as before, but set the rank for generated routes to 30.

use rocket_contrib::serve::StaticFiles;

fn main() {
    rocket::ignite()
        .mount("/static", StaticFiles::from("/www/public").rank(30))
        .launch();
}

Constructs a new StaticFiles that serves files from the file system path with options enabled. By default, the handler’s routes have a rank of 10. To choose a different rank, use StaticFiles::rank().

Example

Serve the static files in the /www/public local directory on path /static without serving index files or dot files. Additionally, serve the same files on /pub with a route rank of -1 while also serving index files and dot files.

use rocket_contrib::serve::{StaticFiles, Options};

fn main() {
    let options = Options::Index | Options::DotFiles;
    rocket::ignite()
        .mount("/static", StaticFiles::from("/www/public"))
        .mount("/pub", StaticFiles::new("/www/public", options).rank(-1))
        .launch();
}

Sets the rank for generated routes to rank.

Example

use rocket_contrib::serve::{StaticFiles, Options};

// A `StaticFiles` created with `from()` with routes of rank `3`.
StaticFiles::from("/public").rank(3);

// A `StaticFiles` created with `new()` with routes of rank `-15`.
StaticFiles::new("/public", Options::Index).rank(-15);

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Called by Rocket when a Request with its associated Data should be handled by this handler. Read more

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Clones self.

Performs the conversion.

Performs the conversion.

Converts self into a collection.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Get the TypeId of this object.