pub struct StaticFiles { /* private fields */ }
Expand description
Static files controller.
Implementations§
Source§impl StaticFiles
impl StaticFiles
Sourcepub fn serve(path: &str) -> Result<Handler>
pub fn serve(path: &str) -> Result<Handler>
Create a controller handler to serve static files from this path.
Sourcepub fn new(path: &str) -> Result<Self>
pub fn new(path: &str) -> Result<Self>
Create a static files controller seriving this path. The path can be relative or absolute.
Sourcepub fn cached(path: &str, duration: Duration) -> Result<Handler>
pub fn cached(path: &str, duration: Duration) -> Result<Handler>
Serve static files with the specified Cache-Control: max-age
attribute.
Sourcepub fn preload(self, path: impl AsRef<Path> + Copy, bytes: &[u8]) -> Self
pub fn preload(self, path: impl AsRef<Path> + Copy, bytes: &[u8]) -> Self
Preload a static file into memory. This allows static files to load and serve files
which may not be available at runtime, e.g. by using include_bytes
.
§Example
StaticFiles::new("static")
.unwrap()
.preload("/style.css", b"body { background: black; }");
Sourcepub fn cache_control(self, cache_control: CacheControl) -> Self
pub fn cache_control(self, cache_control: CacheControl) -> Self
Set the Cache-Control
header.
Sourcepub fn prefix(self, prefix: &str) -> Self
pub fn prefix(self, prefix: &str) -> Self
Set the prefix used in URLs.
For example, if the prefix static
is set,
all URLs to static file should start with /static
. They
will be rewritten internally to find the right file in the static
folder.
pub fn handler(self) -> Handler
Trait Implementations§
Source§impl Controller for StaticFiles
impl Controller for StaticFiles
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle the request and return a response. Implement this function to define how your controller
will respond to requests.
This method is asynchronous, and since we use
async_trait
, the signature can be a bit confusing.
The actual method is: Read moreSource§fn auth(&self) -> &AuthHandler
fn auth(&self) -> &AuthHandler
Set the authentication mechanism for this controller.
Default authentication method is to allow all requests, but can
be adjusted through configuration. Read more
Source§fn middleware(&self) -> &MiddlewareSet
fn middleware(&self) -> &MiddlewareSet
Configure middleware on this controller.
Global middleware can be set in the configuration. By default,
controllers have no middleware.
Source§fn skip_csrf(&self) -> bool
fn skip_csrf(&self) -> bool
Don’t use CSRF protection on this controller. You generally don’t want to disable this unless you
have another mechanism to make sure your users are not being duped into making requests to your app
from somewhere else.
Source§fn route(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
fn route(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
Create a basic route handler for this controller. Read more
Source§fn wildcard(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
fn wildcard(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
Create a wildcard route handler for this controller. Read more
Source§fn handle_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 Request,
stream: Stream<'life2>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 Request,
stream: Stream<'life2>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Internal function that handlers the TCP connection directly after a response
has been sent to the client by the controller. This is typically used for WebSocket connections,
but can also be used to stream data like video.
Source§fn handle_internal<'life0, 'async_trait>(
&'life0 self,
request: Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn handle_internal<'life0, 'async_trait>(
&'life0 self,
request: Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Internal function which implements the bulk of Rwf controller logic. Do not implement this unless
you’re looking to do something entirely different. Read more
Source§fn controller_name(&self) -> &'static str
fn controller_name(&self) -> &'static str
The name of this controller. Used for logging. All names are globally unique, so
you won’t need to override this method.
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
Mutably borrows from an owned value. Read more