Dont split static path names.
A static filed might be called somename.suffix, but there is no need to assume that, and absolutley no need to copy the strings separatley and format them together again when we can just borrow the relevant substring directly from the request.
This commit is contained in:
parent
28032e4026
commit
8dcc6359e2
@ -118,7 +118,7 @@ pub fn run(args: &ArgMatches) -> Result<(), Error> {
|
||||
|
||||
let mut server = Nickel::new();
|
||||
server.utilize(RequestLoggerMiddleware);
|
||||
wrap3!(server.get "/static/{}\\.{}", static_file: file, ext);
|
||||
wrap3!(server.get "/static/",.. static_file);
|
||||
server.utilize(MemcacheMiddleware::new(vec![
|
||||
("tcp://127.0.0.1:11211".into(), 1),
|
||||
]));
|
||||
@ -405,13 +405,12 @@ fn place_all<'mw>(
|
||||
}
|
||||
|
||||
fn static_file<'mw>(
|
||||
_req: &mut Request,
|
||||
_req: &Request,
|
||||
mut res: Response<'mw>,
|
||||
name: String,
|
||||
ext: String,
|
||||
path: &str,
|
||||
) -> MiddlewareResult<'mw> {
|
||||
use templates::statics::StaticFile;
|
||||
if let Some(s) = StaticFile::get(&format!("{}.{}", name, ext)) {
|
||||
if let Some(s) = StaticFile::get(path) {
|
||||
res.set((ContentType(s.mime()), far_expires()));
|
||||
return res.send(s.content);
|
||||
}
|
||||
|
@ -29,6 +29,24 @@ macro_rules! wrap3 {
|
||||
stringify!($handler));
|
||||
$server.$method(matcher, wrapped);
|
||||
}};
|
||||
($server:ident.$method:ident $url:expr,.. $handler:ident) => {{
|
||||
#[allow(unused_parens)]
|
||||
fn wrapped<'mw>(req: &mut Request,
|
||||
res: Response<'mw>)
|
||||
-> MiddlewareResult<'mw> {
|
||||
if let &Some(path) = &req.path_without_query() {
|
||||
$handler(req, res, &path[$url.len()..])
|
||||
} else {
|
||||
res.not_found("Path missing")
|
||||
}
|
||||
}
|
||||
let matcher = format!("{}**", $url);
|
||||
info!("Route {} {} to {}",
|
||||
stringify!($method),
|
||||
matcher,
|
||||
stringify!($handler));
|
||||
$server.$method(matcher, wrapped);
|
||||
}};
|
||||
($server:ident.$method:ident $url:expr, $handler:ident) => {
|
||||
info!("Route {} {} to {}",
|
||||
stringify!($method),
|
||||
|
Loading…
Reference in New Issue
Block a user