Wails アセット ハンドラーでカスタム マルチプレクサーを使用しようとしていますが、何かを取得しようとすると、index.html ページが取得され続けます。マルチプレクサーのservehttp関数の先頭にprintステートメントを追加しましたが、これはプログラムの先頭でfavicon.icoがフェッチされるときに一度だけ呼び出されます。
次のメインファイルがあります:
リーリーターミナルに次の出力が表示されます:
リーリーWails アセットサーバーのドキュメントで説明されているように、テストのために問題のページを取得しようとすると、インデックス ページを取得します:
リーリーservehttp 関数が呼び出されないのはなぜですか?
ログには、externalassethandler
が使用されていることが示されています。これは、外部のフロントエンド開発サーバーを使用することを意味します。すべてのリソース要求は、まず外部のフロントエンド開発サーバーに転送されます。 assetserver.options
で指定されたハンドラーは、外部フロントエンド開発サーバーが 404
または 405
ステータス コードで応答した場合にのみ使用されます。現在、ほとんどのスパ フロントエンド開発サーバーは、非アセット リクエストに対して index.html
を提供します。これが、この動作が見られる理由です。
回避策は、この要求をバイパスするように外部フロントエンド開発サーバーを構成することです。 vite の場合、構成ファイルを変更し、次の内容を追加します:
リーリーしかし、これは行わないことをお勧めします。アセット ハンドラーは、その名前が示すように、動的なアセットにサービスを提供するためです。 wails には、バインドされた go メソッド を呼び出す独自の 方法があります。ぜひ試してみてください。
参考文献:
frontend:dev:serverurl
は wails.json
server.proxy
オプション
の外部アセットハンドラー
以上がカスタムルーターでの wails アセットハンドラーの使用に関する問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。