1
0
mirror of https://github.com/actix/actix-website synced 2025-06-27 07:29:02 +02:00

First pass at Static Files.

This commit is contained in:
Cameron Dershem
2019-06-17 17:35:47 -04:00
parent 9a16b6db93
commit 769c9af8f9
7 changed files with 99 additions and 94 deletions

View File

@ -0,0 +1,10 @@
[package]
name = "static-files"
version = "0.1.0"
authors = ["Cameron Dershem <cameron@pinkhatbeard.com>"]
edition = "2018"
[dependencies]
actix-web = "1.0"
actix-files = "0.1"
mime = "*"

View File

@ -0,0 +1,27 @@
// <config-one>
// extern crate actix_web;
// extern crate mime;
// use actix_files::{FileConfig, NamedFile};
// use actix_web::http::header::DispositionType;
// use actix_web::{http::Method, App, HttpRequest, Result};
// use std::path::PathBuf;
// #[derive(Default)]
// struct MyConfig;
// impl FileConfig for MyConfig {
// fn content_disposition_map(typ: mime::Name) -> DispositionType {
// DispositionType::Attachment
// }
// }
// fn index(req: &HttpRequest) -> Result<NamedFile<MyConfig>> {
// let path: PathBuf = req.match_info().query("tail")?;
// Ok(NamedFile::open_with_config(path, MyConfig)?)
// }
// fn main() {
// App::new().resource(r"/a/{tail:.*}", |r| r.method(Method::GET).f(index));
// }
// </config-one>

View File

@ -0,0 +1,26 @@
// <config-two>
// use actix_files::{FileConfig, Files};
// use actix_web::App;
// #[derive(Default)]
// struct MyConfig;
// impl FileConfig for MyConfig {
// fn is_use_etag() -> bool {
// false
// }
// fn is_use_last_modifier() -> bool {
// false
// }
// }
// fn main() {
// App::new().service(
// "/static",
// Files::with_config(".", MyConfig)
// .unwrap()
// .show_files_listing(),
// );
// }
// </config-two>

View File

@ -0,0 +1,8 @@
// <directory>
use actix_files as fs;
use actix_web::App;
fn main() {
App::new().service(fs::Files::new("/static", ".").show_files_listing());
}
// </directory>

View File

@ -0,0 +1,17 @@
mod configuration;
mod configuration_two;
mod directory;
// <individual-file>
use actix_files::NamedFile;
use actix_web::{web, App, HttpRequest, Result};
use std::path::PathBuf;
fn index(req: HttpRequest) -> Result<NamedFile> {
let path: PathBuf = req.match_info().query("tail").parse().unwrap();
Ok(NamedFile::open(path)?)
}
fn main() {
App::new().route("/", web::get().to(index));
}
// </individual-file>