Houdini 19.0 Pythonスクリプト hou hou.webServer

hou.webServer.registerStaticFilesDirectory HOM function

指定したファイルディレクトリをチェックして、指定したパス接頭辞に合わせたURLsを自動的に提供するようにHoudiniのWebサーバーに命令します。

registerStaticFilesDirectory(directory, url_prefix="/static")

サーバーがurl_prefixで始まるパスのリクエストを受信すると、そのリクエストパスにディレクトリパスを追加した後の部分のパスのファイルが存在すれば、サーバーは自動的にそのファイルをクライアントに提供します。

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

例えば、以下の処理をして:

hou.webServer.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(もっと多くのパス部分にマッチするURL)を持っていた場合、サーバーは静的ルックアップの代わりにそのハンドラーを使用するようになります。

例えば、上記のように静的ディレクトリを登録したとしても、クライアントが/static/geo/foo.bgeoを要求して、且つ、/static/geoに動的ハンドラーがあった場合、サーバーは、静的ファイルを検索せずに、その動的ハンドラーを使用するようになります。

これは、動的に生成されるいくつかのリソースとそうでないサーバーネームスペース内の静的なファイルを混在させる必要がある場合に役立ちます。 しかし、通常では、混乱を回避して、静的リソースと動的リソースを別々に分けた方が良いです。 例えば、静的ファイルにはデフォルトの/static接頭辞を使用した方が良いです。

See also

hou.webServer

クラス

開始と停止

Webリクエストの処理とレスポンス

APIコール

  • hou.webServer.apiFunction()

    HoudiniのWebサーバー上のAPIエンドポイントを介してコール可能な関数のデコレータで、JSONレスポンスまたはバイナリレスポンスを返します。

  • hou.webServer.APIError

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