php エディタ Baicao は今日、SvelteKit を golang バイナリ ファイルに埋め込むという興味深いテクノロジーを紹介します。フロントエンド テクノロジーの継続的な開発により、ますます多くのフレームワークやツールが登場しています。新しいフレームワークとして、SvelteKit はコンパイル時にアプリケーションを構築することで、より高速な読み込み速度とより高いパフォーマンスを提供します。この記事では、SvelteKit アプリケーションを golang バイナリに埋め込んで、より便利なデプロイと配布を実現する方法を説明します。
embeddを使用して単一のバイナリファイルを提供し、sveltekit Webサイトを含めようとしています。私はルーターとしてchiを使用しています。しかし、うまくいきません。以下のオプションのいずれかを取得します。私の理解では、embedd all:
オプションを使用すると、プレフィックス __
が付いたファイルが確実に含まれるようになります。メイン v1 の stripprefix
メソッドのバリエーションも試しました: /uibuild/
または uibuild/
など...
誰かがそれに光を当ててくれませんか?
サンプルリポジトリ
薄型構成: リーリー
main.go v1:
これによりエラー 3 が生成されます。リーリー
main.go v2:
これによりエラー 2 が発生します。リーリー
ファイル構造:
import preprocess from "svelte-preprocess"; import adapter from "@sveltejs/adapter-static"; /** @type {import('@sveltejs/kit').config} */ const config = { kit: { adapter: adapter({ pages: "./../server/uibuild", assets: "./../server/uibuild", fallback: "index.html", }), }, preprocess: [ preprocess({ postcss: true, }), ], }; export default config;回避策 残念なことに、「main.go v2」では 1 文字しか追加できません。使用しているもの:
r.handle("/", http.fileserver(http.fs(static)))
func (mx *mux) handle(パターン文字列、ハンドラー http.handler)
) をサポートします。実行時に URL パラメーターを取得するには、chi.urlparam(r, "userid") (名前付きパラメーターの場合) および chi.urlparam(r, "") (ワイルドカード パラメーターの場合) を呼び出します。
したがって、「パターン」として「/」を渡します。これは/ には一致しますが、それ以外には一致しません。次を使用して修正します。
リーリー
/ にリダイレクトすることです (そうしないと、ユーザーがパスをブックマークした場合にページが読み込まれません)。詳細については、
この回答を参照してください。
9ce6a1af62d5b5047a25f3a59cd1fbbcabout5db79b134e9f6b82c0b36e0489ee08ed を
ui /src/routes に追加します。 /page.svelte とリビルド (両方とも svelte してからアプリケーションに移動します)。これで、
about ページに移動できるようになります (最初にホームページをロードしてから、[About] をクリックします)。これはクライアント ルーターによって処理されます (そのため、おそらく go サーバーへのリクエストは表示されません)。ページに直接アクセスしたときに機能させる方法については、
にリンクされている回答 を参照してください (例:
/about)。
p> これは、埋め込みファイル システムから必要なビットを提供し、他のすべてのリクエストに対してメインの
index.html を返す簡単な (そしてややハックな) 例です (洗練されたルーターがすべてのリクエストを表示できるように)必須ページ)。
リーリー
以上がgolang バイナリへの sveltekit の埋め込みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。