Nuxt.js: Tidak dapat menjana konfigurasi penghalaan secara automatik
P粉404539732
2023-08-25 13:31:01
<p>Saya mahu menjana laluan statik (<kod>/hubungi</kod>, <kod>/tentang</kod>,...) dan laluan dinamik (<kod>/projek /1< /code>, <code>/project/2</code>, ...) supaya apabila pengguna menyegarkan halaman semasa mengakses salah satu laluan ini, halaman itu masih berfungsi dengan betul. </p>
<p>Tetapi apabila melaksanakan <code>npm run generate</code>, saya hanya mendapat <kod>laluan yang dijana "/"</code>, dalam <code>/dist</code> laluan yang dijana tidak kelihatan dalam folder. </p>
<p>Versi Nuxt.js digunakan: <kod>2.14.7</code></p>
<p>Saya mencuba kedua-dua mod, <code>universal</code> dan <code>spa</code>, kedua-duanya tidak berjaya. </p>
<p>Dalam fail nuxt.config.js, saya menambahkan kod berikut di bahagian atas: </p>
<pre class="brush:js;toolbar:false;">const axios = require('axios')
const dynamicRoutes = async () =>
laluan const = menunggu axios.get('http://my-project.com/wp/wp-json/projects/v1/posts')
.then(res => res.data.map((projek) => `/project/${project.ID}/${project.post_name}`))
.then(res => res.concat(
[
'/tentang',
'/contact',
'/portfolio'
]
))
laluan pulang
}
</pra>
<p>Kemudian dalam <kod>eksport lalai {}</code>: </p>
<pre class="brush:js;toolbar:false;">jana: {
laluan: dynamicRoutes
},
</pra>
<p><br /></p>
Pertama sekali, anda tidak perlu menambah
mode: 'universal'
,只需添加target: 'static'
以简化配置。了解更多信息 - https://nuxtjs.org/docs/2.x/features/deployment-targets/。使用ssr: true
dalam konfigurasi, anda akan mendapat tapak web mod statik sepenuhnya dengan cangkuk yang berkaitan seperti yang diterangkan dalam https://stackoverflow.com/a/65208463/8153537.Seterusnya, anda boleh mengalih keluar modul @nuxt/router. Lihat intipati saya - https://gist.github.com/MexsonFernandes/d04495c86b115bbe29f26b36b0b35d2d. Nuxt menjana semua laluan yang diperlukan berdasarkan struktur folder, jadi tiada konfigurasi tambahan diperlukan.
Lihat intipati ini untuk penghalaan halaman projek - https://gist.github.com/MexsonFernandes/d04495c86b115bbe29f26b36b0b35d2d#gistcomment-3555332.
router.mode='hash'
似乎与generate.routes
配置不兼容。当router.mode
设置为hash
时,Nuxt 生成器会忽略 generate.routes,只创建一个用于/
的路由,这可能是因为只期望在hash
模式下存在首页(即index.html
menyediakan laluan yang mengendalikan semua penghalaan untuk aplikasi).Mod cincang ini juga bercanggah dengan mod yang ditetapkan dalam router.js, tetapi jika anda benar-benar memerlukan penghalaan cincangan anda harus memilih untuk menetapkannya sahaja dalam
.router.js
router.js
中设置它,以允许处理generate.routes
untuk membenarkan pemprosesangenerate.routes
mode='universal'
等同于ssr=true
,所以 ssr=false 的配置 在这种模式下没有意义。如果生成静态站点,你需要ssr=true
,这样可以调用任何asyncData()
和fetch()
钩子来填充静态页面数据。这个设置还消除了在dynamicRoutes()
中添加/about
、/contact
和/portfolio
的需要Juga ambil perhatian bahawamode='universal'
adalah bersamaan denganssr=true
tidak mempunyai makna dalam mod ini. Jika menjana tapak statik, anda memerlukan
danssr=true
supaya mana-mana cangkukasyncData()
fetch()🎜 boleh dipanggil untuk mengisi data halaman statik. Tetapan ini juga menghapuskan keperluan untuk dynamicRoutes ()🎜 Menambah
/about🎜,
/contact🎜 dan
/portfolio🎜 diperlukan 🎜🎜 kerana ia sudah termasuk dalam laluan yang dijana. 🎜 🎜🎜GitHub PR🎜🎜