pub macro relative($path:expr) { ... }
Expand description
Generates a crate-relative version of a path.
This macro is primarily intended for use with FileServer
to serve
files from a path relative to the crate root.
The macro accepts one parameter, $path
, an absolute or (preferably)
relative path. It returns a path as an &'static str
prefixed with the
path to the crate root. Use Path::new(relative!($path))
to retrieve an
&'static Path
.
Example
Serve files from the crate-relative static/
directory:
use rocket::fs::{FileServer, relative};
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", FileServer::from(relative!("static")))
}
Path equivalences:
use std::path::Path;
use rocket::fs::relative;
let manual = Path::new(env!("CARGO_MANIFEST_DIR")).join("static");
let automatic_1 = Path::new(relative!("static"));
let automatic_2 = Path::new(relative!("/static"));
assert_eq!(manual, automatic_1);
assert_eq!(automatic_1, automatic_2);