Nuxt.js : Impossible de générer automatiquement la configuration de routage
P粉404539732
2023-08-25 13:31:01
<p>Je souhaite générer des itinéraires statiques (<code>/contact</code>, <code>/about</code>,...) et des itinéraires dynamiques (<code>/project /1< /code>, <code>/project/2</code>, ...) afin que lorsque l'utilisateur actualise la page en accédant à l'une de ces routes, la page fonctionne toujours correctement. </p>
<p>Mais lors de l'exécution de <code>npm run generate</code>, je n'obtiens que la route <code>générée "/"</code>, dans <code>/dist</code> les itinéraires générés ne sont pas visibles dans le dossier. </p>
<p>Version Nuxt.js utilisée : <code>2.14.7</code></p>
<p>J'ai essayé les deux modes, <code>universal</code> et <code>spa</code>, aucun n'a fonctionné. </p>
<p>Dans le fichier nuxt.config.js, j'ai ajouté le code suivant en haut : </p>
<pre class="brush:js;toolbar:false;">const axios = require('axios')
const DynamicRoutes = async () =>
const routes = attendre axios.get('http://my-project.com/wp/wp-json/projects/v1/posts')
.then(res => res.data.map((project) => `/project/${project.ID}/${project.post_name}`))
.then(res => res.concat(
[
'/à propos de',
'/contact',
'/portefeuille'
]
))
itinéraires de retour
}
≪/pré>
<p>Puis dans <code>export default {}</code> : </p>
<pre class="brush:js;toolbar:false;">générer : {
itinéraires : itinéraires dynamiques
},
≪/pré>
<p><br /></p>
Tout d'abord, vous n'avez pas besoin d'ajouter
mode: 'universal'
,只需添加target: 'static'
以简化配置。了解更多信息 - https://nuxtjs.org/docs/2.x/features/deployment-targets/。使用ssr: true
dans la configuration, vous obtiendrez un site Web en mode complètement statique avec des hooks pertinents comme décrit dans https://stackoverflow.com/a/65208463/8153537.Ensuite, vous pouvez supprimer le module @nuxt/router. Découvrez mon résumé - https://gist.github.com/MexsonFernandes/d04495c86b115bbe29f26b36b0b35d2d. Nuxt génère toutes les routes requises en fonction de la structure des dossiers, aucune configuration supplémentaire n'est donc requise.
Consultez cet aperçu du routage des pages du projet - https://gist.github.com/MexsonFernandes/d04495c86b115bbe29f26b36b0b35d2d#gistcomment -3555332.
router.mode='hash'
似乎与generate.routes
配置不兼容。当router.mode
设置为hash
时,Nuxt 生成器会忽略 generate.routes,只创建一个用于/
的路由,这可能是因为只期望在hash
模式下存在首页(即index.html
met en place une route qui gère tout le routage pour l'application).Ce mode de hachage est également en conflit avec le mode défini dans router.js, mais si vous avez vraiment besoin d'un routage de hachage, vous devez choisir de simplement le définir dans
.router.js
router.js
中设置它,以允许处理generate.routes
pour permettre le traitement degenerate.routes
mode='universal'
等同于ssr=true
,所以 ssr=false 的配置 在这种模式下没有意义。如果生成静态站点,你需要ssr=true
,这样可以调用任何asyncData()
和fetch()
钩子来填充静态页面数据。这个设置还消除了在dynamicRoutes()
中添加/about
、/contact
和/portfolio
的需要Notez également quemode='universal'
est équivalent àssr=true
n'a aucune signification dans ce mode. Si vous générez un site statique, vous avez besoin de
etssr=true
pour que l'un des hooksasyncData()
fetch()🎜 puisse être appelé pour remplir les données de la page statique. Ce paramètre élimine également le besoin de DynamicRoutes ()🎜 L'ajout de
/about🎜,
/contact🎜 et
/portfolio🎜 est requis 🎜🎜 car ils sont déjà inclus dans l'itinéraire généré. 🎜 🎜🎜RP GitHub🎜🎜