我尝试使用poem的static files:
cargo.toml:
poem = { version = "1.2.53", features = ["websocket", "static-files"]}
main.rs (简体):
use poem::{endpoint::StaticFileEndpoint, Route, Server, listener::TcpListener};
let app = Route::new().at("/", StaticFileEndpoint::new("index.html"));
Server::new(TcpListener::bind("127.0.0.1:3000"))
.run(app)
.await
当我使用index.html
的绝对路径时,这是有效的,但不使用相对于我的项目文件夹的路径:浏览器显示not found
。
我是否必须使用rust-embed才能在二进制文件中包含静态文件?怎么做?
1条答案
按热度按时间blmhpbnm1#
您需要使用StaticFilesEndpoint。
您使用的是
StaticFileEndpoint
,它只提供特定的文件,在本例中为index.html
。如果你正在创建一个可移植的二进制文件,可能需要
rust-embed
,但如果你使用的是像docker这样的工具,你可以将文件保存在你的git仓库中,并在运行你的容器之前复制它们。了解有关StaticFilesEndpoint的更多信息。