我希望 Warp 为当前工作目录提供服务。这是整个main.rs
:
#[tokio::main]
async fn main() {
let current_dir = std::env::current_dir().expect("failed to read current directory");
warp::serve(warp::fs::dir(current_dir))
.run(([127, 0, 0, 1], 3030))
.await;
}
具有以下依赖项:
[dependencies]
tokio = { version = "1.5", features = ["full"] }
warp = "0.3"
www
然后我在具有以下结构的目录上运行它:
www
├── foo
| └── index.html
| └── style.css
└── bar
└── index.html
└── style.css
提供 HTML 页面,但不提供其引用的 CSS 文件。HTML 页面使用它们各自的 CSS 文件<link rel="stylesheet" href="style.css">
我使用 node.js express 进行此工作,但使用 Warp 它尝试加载www/style.css
,而不是www/foo/style.css
and www/bar/style.css
。
如果我将 href 更改为"foo/style.css"
and ,它会起作用"bar/style.css"
,但如果可能的话,我想避免这种情况。我可以在 Warp 端改变什么来解决这个问题吗?
编辑:我了解到,如果 URL 包含尾部斜杠,则页面会正确呈现 CSS。
所以这不起作用:
http://localhost:3030/foo
http://localhost:3030/bar
但这确实:
http://localhost:3030/foo/
http://localhost:3030/bar/