Houdini 20.0 hwebserver

hwebserver.registerStaticFilesDirectory function

指定したプリフィックスにマッチしたURLに対して自動的にファイルを提供するために、指定したディレクトリをチェックするようにHoudiniのウェブサーバーに命令します。

registerStaticFilesDirectory(directory, url_prefix="/static", port=-1)

サーバーがurl_prefixで始まるパスのリクエストを受信すると、そのリクエストパスの残りの部分をディレクトリパスに追加したパスにファイルが存在していれば、 サーバーは自動的にそのファイルをクライアントに供給します。 このハンドラーをサーバーのメインポート以外のポートで実行させたい場合は、オプションでportを指定することができます。

この関数は、URLハンドラーからコールするのではなく、hwebserver.runコールの前にコールしてください。

例えば、以下を実行して:

hwebserver.registerStaticFilesDirectory("/var/www/files", "/static")

…クライアントが以下のサーバーパスをリクエストして:

/static/css/main.css

…このファイルが存在した場合:

/var/www/files/css/main.css

…サーバーは、Pythonハンドラー不要で自動的にクライアントにmain.cssファイルを提供します。

Pythonハンドラーではなくて、このようにしてサーバーが静的ファイル(Houdiniデータから動的に生成されないファイルで、例えばCSSやJavaScriptファイルなど)を用意するようにサーバーのセットアップを試してください。

Note

URLハンドラーが静的パスプリフィックスよりも特定された(もっと多くのパス部分にマッチする)URLを持っている場合、サーバーは、静的検索の代わりにそのハンドラーを使用します。

例えば、上記の静的ディレクトリが登録されていて、クライアントが/static/geo/foo.bgeoをリクエストし、/static/geoに対して動的ハンドラーがある場合、 サーバーは、静的ファイルを検索するのではなく、そのハンドラーを使用します。

これは、サーバーネームスペース内の静的ファイルと混在しつつ動的に生成されるリソースがいくつか必要な場合に役立ちます。 とはいえ、通常では、混乱を避けるために、静的ファイルに対してデフォルトの/staticプリフィックスを使用するなどして、静的リソースと動的リソースを分けるのが良いです。

See also

hwebserver

クラス

  • hwebserver.Request

    Houdiniのウェブサーバーに送信されるリクエスト。

  • hwebserver.Response

    Houdiniのウェブサーバーから送り返されるレスポンス。

  • hwebserver.UploadedFile

    Houdiniのウェブサーバーに送信されるリクエストにアップロードされたファイル。

  • URLHandler

    汎用のHTTPハンドラー。

  • AsyncURLHandler

    汎用の非同期HTTPハンドラー。

  • WebSocket

    組み込みサーバーをWebSocketに対応させるための基底クラス。

開始と停止

  • hwebserver.run

    Houdiniのウェブサーバーを開始します。

  • hwebserver.requestShutdown

    すべてのオープンリクエストが処理された後にシャットダウンするようにHoudiniのウェブサーバーに命令します。

  • hwebserver.isInDebugMode

    Houdiniのウェブサーバーがデバッグモード(でdebug=True)で起動されていればTrueを返します。

ウェブリクエストの処理とレスポンスの返し

ウェブソケット

  • WebSocket

    組み込みサーバーをWebSocketに対応させるための基底クラス。

  • hwebserver.webSocket

    HoudiniのウェブサーバーにWebSocketクラスを登録するデコレータ。

APIコール

  • hwebserver.apiFunction

    Houdiniウェブサーバー上のAPIエンドポイント経由で関数をコールを可能にするデコレータで、JSON形式またはバイナリ形式のレスポンスを返します。

  • hwebserver.APIError

    apiFunctionハンドラー内でこの例外を引き起こしてエラーを示します。