デプロイ
Yewアプリケーションをサーバーにデプロイする準備ができたら、さまざまなデプロイオプションがあります。
trunk build --release
は、リリースモードでアプリをビルドします。 HTTPサーバーをセットアップして、サイトにアクセスしたときに常に `index.html` を提供し、 `index_<hash>.js` や `index_bg_<hash>.wasm` などの静的パスへのリクエストに対しては、trunk によって生成された dist ディレクトリからのそれぞれのコンテンツを提供するようにします。
trunk serve --release
についての注意本番環境でアプリケーションを提供するために `trunk serve --release` を使用しないでください。開発中にリリースビルドをテストするためだけに使用してください。
サーバー設定
フォールバックとして `index.html` を提供する
アプリケーションがYewルーターを使用している場合、サーバーが存在しないファイルを要求されたときに `index.html` を返すように設定する必要があります。
Yewルーターを使用するアプリケーションは、シングルページアプリケーション(SPA)として構築されます。 ユーザーが実行中のクライアント内からURLに移動すると、ルーターはURLを解釈してそのページにルーティングします。
ただし、アドレスバーにURLを入力してページに移動したり、ページを更新したりするなど、新規に読み込む場合、これらすべてのアクションは、実行中のアプリケーションの外部でブラウザ自体によって処理されます。 ブラウザは、ルーターをバイパスして、そのURLをサーバーに直接リクエストします。 間違って設定されたサーバーは、ステータス404 - 見つかりませんを返します。
代わりに `index.html` を返すことにより、リクエストが `/` に対するものであったかのようにアプリは通常どおり読み込まれ、ルーターがルートが `/show/42` であることに気づいて適切なコンテンツを表示するまで続きます。
Web Assemblyアセットの正しいMIMEタイプの構成
WASMファイルは、Content-Typeヘッダーを `application/wasm` MIMEタイプに設定して提供する必要があります。
ほとんどのサーバーとホスティングサービスは、デフォルトですでにこれを行っています。そうでない場合は、ドキュメントを参照してください。正しくないMIMEタイプは、ほとんどのWebブラウザで、次のようなエラーが発生します。
`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:
TypeError: WebAssembly: Response has unsupported MIME type 'text/plain' expected 'application/wasm'
相対パスでのビルド
デフォルトでは、trunkはサイトが `/` で提供されていると想定し、それに応じてサイトを構築します。 この動作は、`index.html` ファイルに `<base data-trunk-public-url />` を追加することでオーバーライドできます。 Trunk は、 `--public-url` に渡された値を含むようにこのタグを書き換えます。 Yewルーターは、 `<base />` の存在を自動的に検出し、適切に処理します。
環境変数を使用した動作のカスタマイズ
環境変数を使用してビルド環境をカスタマイズするのが一般的です。 アプリはブラウザで実行されるため、実行時に環境変数を読み取ることができません。 std::env!
マクロを使用して、コンパイル時に環境変数の値を取得できます。