dra*_*035 7 routes vue.js nuxt.js
我想为我的项目生成静态路由 ( /contact
, /about
, ...) 和动态路由 ( /project/1
, /project/2,
...),这样当用户在访问任何这些路由时刷新页面时,页面仍然有效。
但是当npm run generate
我这样做时,我只Generated route "/"
在/dist
文件夹中看到没有生成路由。
使用的 Nuxt.js 版本: 2.14.7
我尝试了两种模式universal
和spa
模式,但两者都不适用。
在 nuxt.config.js 我在顶部:
const axios = require('axios')
const dynamicRoutes = async () => {
const routes = await 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(
[
'/about',
'/contact',
'/portfolio'
]
))
return routes
}
Run Code Online (Sandbox Code Playgroud)
然后在export default {}
:
generate: {
routes: dynamicRoutes
},
Run Code Online (Sandbox Code Playgroud)
router.mode='hash'
似乎与配置不兼容generate.routes
。当router.mode
设置为 时hash
,Nuxt 生成器会忽略generate.routes
并仅为 创建单个路由/
,大概是因为只有登陆页面预计以hash
模式存在(即index.html
设置一个路由器,该路由器处理应用程序的所有路由)。
该哈希模式也与中设置的模式router.js
冲突,但如果您确实需要哈希路由,则应该选择仅将其设置router.js
为允许generate.routes
处理。
另请注意mode='universal'
相当于ssr=true
,因此该ssr=false
配置与该模式一起没有意义。如果生成静态站点,您需要ssr=true
调用任何asyncData()
和fetch()
挂钩来填充静态页面数据。/about
此设置还消除了附加、/contact
和/portfolio
indynamicRoutes()
的需要,因为它们已经包含在生成的路由中。
归档时间: |
|
查看次数: |
1218 次 |
最近记录: |