actix-plus-static-files

Legal

Dual-licensed under MIT or the UNLICENSE.

Overview

Usage

Use-case #1: Static resources folder

Create folder with static resources in your project (for example static):

bash cd project_dir mkdir static echo "Hello, world" > static/hello

Add to Cargo.toml dependency to actix-web-static-files:

toml [dependencies] actix-plus-static-files = "0.1.0"

Include static files in Actix Web application:

```rust use actixweb::{App, HttpServer}; use actixplusstaticfiles::{buildhashmapfromincludeddir, ResourceFiles, Dir, include_dir};

const DIR: Dir = include_dir!("./examples/static");

[actix_web::main]

async fn main() { HttpServer::new(|| { let hashmap = buildhashmapfromincludeddir(&DIR); App::new().service(ResourceFiles::new("/", hashmap)) }) .bind("127.0.0.1:8192") .expect("Failed to bind to port") .run() .await .expect("Failed to run server"); }

```

Run the server:

bash cargo run

Request the resource:

```bash $ curl -v http://localhost:8080/static/hello * Trying 127.0.0.1:8080... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8080 (#0)

GET /static/hello HTTP/1.1 Host: localhost:8080 User-Agent: curl/7.65.3

Use-case #2: Angular-like applications

If you are using Angular (or any of a large variety of other such libraries, such as Svelte + Routify) as frontend, you may want to resolve all not found calls via index.html of frontend app. To do this just call method resolve_not_found_to_root after resource creation.

```rust use actixweb::{App, HttpServer}; use actixplusstaticfiles::{buildhashmapfromincludeddir, ResourceFiles, Dir, include_dir};

const DIR: Dir = include_dir!("./examples/static");

[actix_web::main]

async fn main() { HttpServer::new(|| { let hashmap = buildhashmapfromincludeddir(&DIR); App::new().service(ResourceFiles::new("/", hashmap).resolvenotfoundtoroot()) }) .bind("127.0.0.1:8192") .expect("Failed to bind to port") .run() .await .expect("Failed to run server"); }

```

Remember to place you static resources route after all other routes.