0

我使用 libevent 构建了一个简单的 http 服务器。访问资源(在我的情况下为文件夹)的方式是

http://serverAddress:port/path/to/resouce/

使用解码的 url 提取资源的路径。它在 Linux 上运行良好,因为请求是这样的

http://severAddress:port/home/vickey/folder

但在 window$ 请求是

http://serverAddress:port/c:/users/vickey/folder

这导致解码的 url 为/c:/users/vickey/folder。它可以手动删除前导斜杠以纠正问题。但是,由于我在我的代码中使用和学习 boost 库,我想知道是否有这种实现?我尝试使用 native() 和 relative_path()。谢谢。

4

1 回答 1

0

它绝对可以按照你的要求去做,但我会建议一种不同的方法。如何为服务器创建一个可以称为 RESOURCE_BASE_PATH 的配置属性。在 URL 中接收到的资源路径将附加到 RESOURCE_BASE_PATH 以创建完整路径。

这对于 FTP 和 HTTP 服务器等来说是相当标准的。在 Windows 上,它可以设置为“c:”,在 Linux 上,留空,默认为“/”。

还要记住,Windows 上的斜杠 (\) 与 Unix 上的斜杠 (/) 不同。

于 2012-09-11T08:01:38.393 回答