Rust 如何重定向到带有尾部斜杠的URL?

Rust 如何重定向到带有尾部斜杠的URL?,rust,routes,webserver,url-routing,rust-warp,Rust,Routes,Webserver,Url Routing,Rust Warp,我使用的是一个静态文件目录。不幸的是,这些静态文件中使用的相对链接只能在我向路径添加尾部斜杠时解析 这是我用来为目录服务的代码: let route=warp::path(“段”) 和(warp::path(“另一个”)) 和(warp::fs::dir(“../path/to/static/files/folder”); 服务(路线)。运行([0,0,0,0],3030))。等待; 所以现在 0.0.0.0:3030/段/另一段/工作正常 0.0.0.0:3030/段/另一个不起作用 原

我使用的是一个静态文件目录。不幸的是,这些静态文件中使用的相对链接只能在我向路径添加尾部斜杠时解析

这是我用来为目录服务的代码:

let route=warp::path(“段”)
和(warp::path(“另一个”))
和(warp::fs::dir(“../path/to/static/files/folder”);
服务(路线)。运行([0,0,0,0],3030))。等待;
所以现在

  • 0.0.0.0:3030/段/另一段/
    工作正常
  • 0.0.0.0:3030/段/另一个
    不起作用
原则上,我不会介意这一点,只是总是使用带有尾随斜杠的URL,但是当我在iOS上“添加到主屏幕”Safari的页面(作为PWA)时,尾随斜杠会自动显示

因此,为了解决这个问题,我尝试创建一个重定向,然后添加尾随斜杠,如下所示:

let redirect=warp::path(“段”)和(warp::path(“另一”)和(warp::path::end())
.地图{
warp::redirect(Uri::from_static(“0.0.0.0:3030/segment/other/”)
});
但是,此重定向筛选器仅匹配
0.0.0.0:3030/segment/other/
。当我省略
warp::path::end()
时,重定向适用于
0.0.0:3030/segment/other
,但现在所有内容(例如
0.0.0.0:3030/segment/other/styles.css
)都被重定向到
0.0.0.0:3030/segment/other/

是否只有在路径没有以斜杠或文件扩展名结尾时才可以重定向(例如,
.html
.css
等)

这可能是因为我的总体建议在这里也不正确。

此线程可能很有用: