API 更改后 Gridsome 不刷新数据
Gridsome doesn't refresh data after changes in API
我正在从 strapi Api 中获取数据作为集合,它可以工作,但是如果我在 Strapi 中进行更改,Gridsome 中的数据不会更改,我必须重新启动 Gridsome 服务器才能获得新的信息。
在本地开发中运行 Api 和 Gridsome
我已经检查过 strapi 正在工作并且 graphql 没有获取新数据。
我的代码:
gridsome.server.js
const axios = require('axios')
api.loadSource(async actions => {
const { data } = await axios.get('http://localhost:1337/events')
const collection = actions.addCollection({
typeName: 'Event',
path: 'event/:id'
})
for (const event of data) {
collection.addNode({
id: event.id,
title: event.title,
description: event.description,
price: event.price,
date: event.date,
location: event.location,
duration: event.duration,
coverName: event.cover.hash,
coverThumbNail: event.cover.formats.thumbnail.url,
coverMedium: event.cover.formats.medium.url,
coverImage: event.cover.formats.large.url,
category: event.categories,
path: '/events/'+event.id
})
}
})
我的index.vue
<page-query> query { events: allEvent{ edges{ node { id title description price date location duration coverName coverThumbNail coverMedium coverImage category { id } } } } } </page-query>
<script>
export default {
data: () => ({
events: []
}),
mounted() {
this.events = this.$page.events.edges
},
}
感谢您的宝贵时间
来自 strapi.io 上的文档
https://strapi.io/documentation/developer-docs/latest/developer-resources/content-api/integrations/gridsome.html#configure-gridsome
Gridsome is a Static Site Generator (opens new window)and will fetch your content from Strapi at build time.
基本上,这意味着 Gridsome 的 GraphQL 在构建时“填充”了来自 Strapi 的数据,要获得新的 posts,您应该重新生成您的页面。
如果您不想每次添加 post 时都手动部署您的站点,您应该检查 Strapi 的 webhooks
我正在从 strapi Api 中获取数据作为集合,它可以工作,但是如果我在 Strapi 中进行更改,Gridsome 中的数据不会更改,我必须重新启动 Gridsome 服务器才能获得新的信息。
在本地开发中运行 Api 和 Gridsome
我已经检查过 strapi 正在工作并且 graphql 没有获取新数据。
我的代码:
gridsome.server.js
const axios = require('axios')
api.loadSource(async actions => {
const { data } = await axios.get('http://localhost:1337/events')
const collection = actions.addCollection({
typeName: 'Event',
path: 'event/:id'
})
for (const event of data) {
collection.addNode({
id: event.id,
title: event.title,
description: event.description,
price: event.price,
date: event.date,
location: event.location,
duration: event.duration,
coverName: event.cover.hash,
coverThumbNail: event.cover.formats.thumbnail.url,
coverMedium: event.cover.formats.medium.url,
coverImage: event.cover.formats.large.url,
category: event.categories,
path: '/events/'+event.id
})
}
})
我的index.vue
<page-query> query { events: allEvent{ edges{ node { id title description price date location duration coverName coverThumbNail coverMedium coverImage category { id } } } } } </page-query>
<script>
export default {
data: () => ({
events: []
}),
mounted() {
this.events = this.$page.events.edges
},
}
感谢您的宝贵时间
来自 strapi.io 上的文档 https://strapi.io/documentation/developer-docs/latest/developer-resources/content-api/integrations/gridsome.html#configure-gridsome
Gridsome is a Static Site Generator (opens new window)and will fetch your content from Strapi at build time.
基本上,这意味着 Gridsome 的 GraphQL 在构建时“填充”了来自 Strapi 的数据,要获得新的 posts,您应该重新生成您的页面。
如果您不想每次添加 post 时都手动部署您的站点,您应该检查 Strapi 的 webhooks