1

virDir.serveRequest(request);URLに対して機能するリクエストを処理する単純なDart HTTPServerを実行しています192.168.1.200:8080/index.htmlが、または404 Not Foundを使用する場合は. 私は、おそらく素朴ですが、デフォルトは自動でした。ところで、これは私にとってすべて新しいことです。192.168.1.200:8080192.168.1.200:8080/

HTMLServer のデフォルト設定に気づきませんでした。これはどのように達成されますか?

(編集)

デフォルトを使用して使用を検出し、正しいファイル名を計算することができましたが、ブラウザに配信する方法がわかりません:

_processRequest(newPath, request) { // new path is index.html
  File file = new File(newPath);
  file.exists().then((found) {
    if(found) {
      file.openRead().pipe(request.response);  // probably dies here
      }
    else {
     _send404(request.response);
    }
   });
}

[編集]

まだ index.html ファイルを提供できません。VirtualDirector.serveFile() を使用してみましたが、デフォルトの index.html ファイルを処理しようとすると機能しません。私は例に従おうとしてきました。

final HTTP_ROOT_PATH = Platform.script.resolve('../web').toFilePath();
final virDir = new VirtualDirectory(HTTP_ROOT_PATH)
  ..jailRoot = false  // process links will work
  ..followLinks = true
  ..allowDirectoryListing = true;

var dir = new Directory(virDir.root);
var indexUri = new Uri.file(dir.path).resolve('/index.html');
virDir.serveFile(new File(indexUri.toFilePath()), request);

これを実行して indexUri.toFilePath() を出力すると、出力は「/index.html」になります

私のコードは /srv/fireimager/bin と /srv/fireimager/web にあり、後者は仮想ディレクトリ ルートです。ユーザーが URL に /index.html を指定していないことを検出すると、動作しません。エラーは発生せず、javascript コンソールには何も表示されないため、ブラウザには何も表示されません。

VirtualDirectly.serveFiler の使い方が明らかにわかりません。

4

1 に答える 1