diff --git a/examples/basics/src/main.rs b/examples/basics/src/main.rs index c79cb4ad7..633f4823f 100644 --- a/examples/basics/src/main.rs +++ b/examples/basics/src/main.rs @@ -10,7 +10,7 @@ use futures::Stream; use std::{io, env}; use actix_web::{error, fs, pred, server, App, HttpRequest, HttpResponse, Result, Error}; -use actix_web::http::{Method, StatusCode}; +use actix_web::http::{header, Method, StatusCode}; use actix_web::middleware::{self, RequestSession}; use futures::future::{FutureResult, result}; @@ -40,36 +40,18 @@ fn index(mut req: HttpRequest) -> Result { req.session().set("counter", counter)?; } - // html - let html = format!(r#"actix - basics - -

Welcome

- session counter = {} - -"#, counter); // response Ok(HttpResponse::build(StatusCode::OK) - .content_type("text/html; charset=utf-8") - .body(&html)) + .content_type("text/html; charset=utf-8") + .body(include_str!("../static/welcome.html"))) } /// 404 handler -fn p404(req: HttpRequest) -> Result { - - // html - let html = r#"actix - basics - - back to home -

404

- -"#; - - // response - Ok(HttpResponse::build(StatusCode::NOT_FOUND) - .content_type("text/html; charset=utf-8") - .body(html)) +fn p404(req: HttpRequest) -> Result { + Ok(fs::NamedFile::open("./static/404.html")? + .set_status_code(StatusCode::NOT_FOUND)) } @@ -131,14 +113,16 @@ fn main() { // redirect .resource("/", |r| r.method(Method::GET).f(|req| { println!("{:?}", req); - HttpResponse::Found() - .header("LOCATION", "/index.html") + .header(header::LOCATION, "/index.html") .finish() })) // default .default_resource(|r| { + // 404 for GET request r.method(Method::GET).f(p404); + + // all requests that are not `GET` r.route().filter(pred::Not(pred::Get())).f( |req| HttpResponse::MethodNotAllowed()); })) diff --git a/examples/static/actixLogo.png b/examples/static/actixLogo.png index 142e4e8d5..1e2509a75 100644 Binary files a/examples/static/actixLogo.png and b/examples/static/actixLogo.png differ