Skip to main content

SpaMiddleware

Struct SpaMiddleware 

Source
pub struct SpaMiddleware { /* private fields */ }
Expand description

SPA static file middleware.

  • Matches /{filename} against the disk root, then against embedded files
  • Serves files with MIME types inferred by the host
  • Falls back to index.html for unknown paths (SPA routing)
  • Handles GET and HEAD; other methods pass through silently

Implementations§

Source§

impl SpaMiddleware

Source

pub fn new(source: impl Into<SpaSource>) -> SpaMiddleware

Create a new SPA middleware with default index “index.html”.

The disk root is resolved relative to the current working directory. If the directory doesn’t exist at that path, the middleware searches upward through ancestor directories and their immediate subdirectories, matching the strategy used by config::load_appsettings.

Source

pub fn with_index( source: impl Into<SpaSource>, index: impl Into<String>, ) -> SpaMiddleware

Create a new SPA middleware with a custom index file name.

Source

pub fn from_source(source: SpaSource) -> SpaMiddleware

Create a SPA middleware from an already-built source.

Source

pub fn resolved_root(&self) -> &Path

The disk directory actually consulted, after resolution.

Source

pub fn embedded(&self) -> Option<&EmbeddedAssets>

The embedded files this middleware may serve, if any.

Present even when EMBED_ENV disabled them at runtime.

Trait Implementations§

Source§

impl IMiddleware for SpaMiddleware

Source§

fn invoke<'life0, 'life1, 'async_trait>( &'life0 self, ctx: &'life1 mut dyn IHttpContext, ) -> Pin<Box<dyn Future<Output = Result<ControlFlow<()>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, SpaMiddleware: 'async_trait,

Process an HTTP request (before hook). Read more
Source§

fn after<'life0, 'life1, 'async_trait>( &'life0 self, _ctx: &'life1 mut dyn IHttpContext, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Called after the final handler has executed. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more