Vue の SSR ドキュメントによると、node.js を使用してアプリケーションをレンダリングし、Express サーバーを使用してそれを返すことが可能です。 FastAPIでも同じことができるのでしょうか?
それとも、Jinja2 テンプレートまたは SPA を使用することが唯一の解決策ですか?
Vue 3 の区切り文字を変更してプロジェクトをビルドし、ファイルを Jinja2 テンプレートとして提供することが解決策になるような気がしますが、それが Vue のルーターでどのように機能するかはわかりません。 /dist
フォルダーをデフォルト ルートで提供し、実際に存在するファイルを表示するために使用できるキャッチオールを使用できることはわかっています。
@app.get("/", response_class=FileResponse) def read_index(リクエスト: リクエスト): インデックス = f"{static_folder}/index.html" ファイルレスポンス(インデックス)を返す @app.get("/{catchall:path}"、response_class=FileResponse) def read_index(リクエスト: リクエスト): path = request.path_params["キャッチオール"] ファイル = 静的フォルダーのパス os.path.exists(ファイル)の場合: ファイル応答を返す(ファイル) インデックス = f"{static_folder}/index.html" ファイルレスポンス(インデックス)を返す
/dist
と Jinja2 テンプレートを組み合わせて動的ページを提供するにはどうすればよいでしょうか?
FastAPI および Vue 3 を介して SSR のサポートを提供する、Nuxt.js、Quasar、Gridsome など、いくつかのオプションが利用可能です。