Struct rocket_contrib::serve::StaticFiles
source · pub struct StaticFiles { /* private fields */ }
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§
source§impl StaticFiles
impl StaticFiles
sourcepub fn from<P: AsRef<Path>>(path: P) -> Self
pub fn from<P: AsRef<Path>>(path: P) -> Self
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();
}
sourcepub fn new<P: AsRef<Path>>(path: P, options: Options) -> Self
pub fn new<P: AsRef<Path>>(path: P, options: Options) -> Self
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();
}
sourcepub fn rank(self, rank: isize) -> Self
pub fn rank(self, rank: isize) -> Self
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§
source§impl Clone for StaticFiles
impl Clone for StaticFiles
source§fn clone(&self) -> StaticFiles
fn clone(&self) -> StaticFiles
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Handler for StaticFiles
impl Handler for StaticFiles
Auto Trait Implementations§
impl Freeze for StaticFiles
impl RefUnwindSafe for StaticFiles
impl Send for StaticFiles
impl Sync for StaticFiles
impl Unpin for StaticFiles
impl UnwindSafe for StaticFiles
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
source§impl<T> IntoSql for T
impl<T> IntoSql for T
source§fn into_sql<T>(self) -> Self::Expressionwhere
Self: Sized + AsExpression<T>,
fn into_sql<T>(self) -> Self::Expressionwhere
Self: Sized + AsExpression<T>,
self
to an expression for Diesel’s query builder. Read moresource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
&self
to an expression for Diesel’s query builder. Read more