2013-02-19 1 views
8

埋め込みJettyを使用してディレクトリXの静的ファイルを処理できますが、URL Yにマップできますか?私はディレクトリ "Web"の下に格納された静的ファイルを持っていますが、URLはhttp://host/myappのようなものにします。jetty ResourceHandlerをURLにマップ

私はすでに成功し、次のようにResourceHandlerで構成されたサーバー走っています

ResourceHandler ctx = new ResourceHandler(); 
ctx.setResourceBase("path-to-web"); 
HandlerList list = new HandlerList(); 
list.addHandler(ctx); 
... 
server.setHandler(list); 

をしかし、結果は、目的のURLマッピングの下/web下のファイルを提供していません。

答えて

18

ResourceHandlerにはコンテキストを設定することはできませんが、これを実現するにはContextHandlerで単純にラップすることができます。

ResourceHandler resHandler = new ResourceHandler(); 
resHandler.setResourceBase("path-to-web"); 
ContextHandler ctx = new ContextHandler("/my-files"); /* the server uri path */ 
ctx.setHandler(resHandler); 
server.setHandler(ctx); 

ファイルシステム上のpath-to-web

1

桟橋9のために動作しないのResourceHandlerコンテンツとして/my-filesを提供することが、このことを行います:

代わりにこれを試してみてください

ContextHandler contextHandler = new ContextHandler("/my-files"); 
contextHandler.setResourceBase("/tmp/static"); 

ResourceHandler resourceHandler = new ResourceHandler(); 
contextHandler.setHandler(resourceHandler); 

server.setHandler(contextHandler); 
+0

これはjetty 9.と動作していないようです。いくつかのドキュメントへのリンクを提供できますか? –

+0

私は桟橋の別の質問を作成しました9 - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty-9-404-not-found-error-works-finあなたが私にヒントを与えたらうれしい –

関連する問題