您可以在构建期间使用 nuxt 从 strapi 获取数据来生成静态站点吗?我有问题
Can you generate a static site with nuxt fetching data from strapi during build time? I am having issues
我是 nuxt 和 str 的新手api,所以我不确定我错过了什么。
我正在尝试创建一个完全静态的站点,它会在构建期间对我的本地主机 strapi 服务器进行所有 api 调用以获取数据。不幸的是,每次我 运行 nuxt 生成并尝试托管 /dist 文件的内容时,该站点都会向客户端的 api 发出实时获取请求,这会在不在我的本地计算机上时破坏该站点.
在我的 nuxt.config.js 中,我有我的目标:“static”,这是我认为我必须做的所有事情,但我可能是不正确的。我想知道我是否需要托管我的 api 才能完成这项工作,但我真的不想这样做。
我一直在使用 fetch 来获取我的数据。
有人知道我可能做错了什么吗?非常感谢有关该主题的任何帮助。
编辑:
我想知道是不是我的设置有问题,所以我创建了一个新的 nuxt 和 strapi 设置测试内容,发现了同样的问题。我现在想知道我是否不应该在我的页面组件中使用 fetch 而应该使用 asyncData 代替?文档肯定说 fetch 应该没问题,所以我正在尝试弄清楚发生了什么。
进一步编辑:
未固定,但我认为在正确的方向上取得进展。看来我应该在 nuxt.config.js 的生成变量中设置路由变量,以便构建我的动态页面。但是,我仍然无法查看每个产品的所有图像...即将尝试在模板中将 require() 与图像标签一起使用。
fetch()
完全可以获取内容,因为它在服务器端和客户端都会 运行。如果您确实使用 Nuxt 的动态路由,它应该会正确生成它。至于图像,我不确定(还没有尝试过)但这也完全可以在构建期间完成。
据我所知,您无需前往 nuxt.config.js
即可生成页面。
上次我使用 Strapi 时,我尝试 运行 这篇文章中链接的启动器,它运行完美:https://strapi.io/blog/build-a-blog-using-nuxt-strapi-and-apollo
从您的构建开始,如果您打算在本地构建它,那么您完全可以在之后托管它。快速 yarn start
可以确认您的项目运行良好。
同时,您需要 100% 确定您不打算再次使用您的 Strapi 项目来进一步(客户端)获取。默认情况下 IMO 应该没问题。
我是 nuxt 和 str 的新手api,所以我不确定我错过了什么。
我正在尝试创建一个完全静态的站点,它会在构建期间对我的本地主机 strapi 服务器进行所有 api 调用以获取数据。不幸的是,每次我 运行 nuxt 生成并尝试托管 /dist 文件的内容时,该站点都会向客户端的 api 发出实时获取请求,这会在不在我的本地计算机上时破坏该站点.
在我的 nuxt.config.js 中,我有我的目标:“static”,这是我认为我必须做的所有事情,但我可能是不正确的。我想知道我是否需要托管我的 api 才能完成这项工作,但我真的不想这样做。
我一直在使用 fetch 来获取我的数据。
有人知道我可能做错了什么吗?非常感谢有关该主题的任何帮助。
编辑:
我想知道是不是我的设置有问题,所以我创建了一个新的 nuxt 和 strapi 设置测试内容,发现了同样的问题。我现在想知道我是否不应该在我的页面组件中使用 fetch 而应该使用 asyncData 代替?文档肯定说 fetch 应该没问题,所以我正在尝试弄清楚发生了什么。
进一步编辑:
未固定,但我认为在正确的方向上取得进展。看来我应该在 nuxt.config.js 的生成变量中设置路由变量,以便构建我的动态页面。但是,我仍然无法查看每个产品的所有图像...即将尝试在模板中将 require() 与图像标签一起使用。
fetch()
完全可以获取内容,因为它在服务器端和客户端都会 运行。如果您确实使用 Nuxt 的动态路由,它应该会正确生成它。至于图像,我不确定(还没有尝试过)但这也完全可以在构建期间完成。
据我所知,您无需前往 nuxt.config.js
即可生成页面。
上次我使用 Strapi 时,我尝试 运行 这篇文章中链接的启动器,它运行完美:https://strapi.io/blog/build-a-blog-using-nuxt-strapi-and-apollo
从您的构建开始,如果您打算在本地构建它,那么您完全可以在之后托管它。快速 yarn start
可以确认您的项目运行良好。
同时,您需要 100% 确定您不打算再次使用您的 Strapi 项目来进一步(客户端)获取。默认情况下 IMO 应该没问题。