Comment faire en sorte que FastAPI exécute SSR pour Vue 3 ?
P粉004287665
2023-08-26 21:31:32
<p>Selon la documentation SSR de Vue, il est possible de restituer une application à l'aide de node.js et de la renvoyer à l'aide d'un serveur Express. FastAPI peut-il faire la même chose ? </p>
<p>Ou l'utilisation des modèles Jinja2 ou SPA est-elle la seule solution ? </p>
<h3>Question : </h3>
<ul>
<li>Pas de SPA : aide au référencement</li>
<li>Pas de SSG : trop de pages seront générées. Certains doivent être générés dynamiquement. ≪/li>
<li>Aucun modèle Jinja2/Python : les modules de nœuds ne seront pas construits, regroupés et servis. Tous les modules doivent être servis via un package CDN distant. ≪/li>
</ul>
<p>J'ai le sentiment que peut-être changer le délimiteur de Vue 3, puis construire le projet et servir les fichiers en tant que modèles Jinja2 serait la solution, mais je ne suis pas sûr de savoir comment cela fonctionnerait avec le routeur de Vue. Je sais que le dossier <code>/dist</code> peut être servi sur la route par défaut, puis utiliser un fourre-tout qui peut être utilisé pour afficher les fichiers qui existent réellement. </p>
<h3>Solutions possibles</h3>
<pre class="brush:py;toolbar:false;">@app.get("/", réponse_class=FileResponse)
def read_index (requête : requête) :
index = f"{static_folder}/index.html"
retourner FileResponse (index)
@app.get("/{catchall:path}", réponse_class=FileResponse)
def read_index (requête : requête) :
chemin = request.path_params["catchall"]
fichier = dossier_statique + chemin
si os.path.exists (fichier):
retourner FileResponse (fichier)
index = f"{static_folder}/index.html"
retourner FileResponse (index)
≪/pré>
<h3>Question</h3>
<ul>
<li>S'il y avait un moyen de réaliser du SSR en utilisant FastAPI et Vue 3, quel serait-il ? ≪/li>
<li>S'il n'y a pas de moyen direct, comment combiner le <code>/dist</code> intégré à Vue avec les modèles Jinja2 pour fournir des pages dynamiques ? ≪/li>
</ul></p>
Plusieurs options sont disponibles, telles que Nuxt.js, Quasar et Gridsome, qui prennent en charge SSR via FastAPI et Vue 3.