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

/c:/users/vickey/folderとしてデコードされた URL になります。問題を修正するために先頭のスラッシュを手動で削除することができます。ただし、コードでブースト ライブラリを使用および学習しているので、この種の実装があるかどうか疑問に思っていました。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 に答える