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 |