- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在构建时计算和缓存前端和后端 API 路由所需的新数据。有没有办法读取 API 路由在构建时生成的静态属性? API 路由可公开访问,因此我不能只从前端传递数据。
最佳答案
所有构建工件都保存在 .next
文件夹中,该文件夹在应用程序源之外,因此您的代码将无法访问它。
如果您在 getStaticProps
中获取的数据计算起来很耗时,我会把它保存在一些 cache
中,然后在您的 API 路由中从这个缓存中读取。
更新:我撒了谎,我试了一下,实际上可以访问缓存的页面数据,但有一些警告。
给定页面的构建工件保存在 .next/server/pages/
中。导出的静态 Prop 存储在与页面路径匹配的 JSON 文件中。例如。 /contact
的静态 Prop 位于 .next/server/pages/contact.json
中。
当您执行 yarn build
时,这些文件会被删除,因此您不能简单地导入它们
import data from '../../.next/server/pages/contact.json'
在您的代码中,因为这会因为您尝试导入不存在的文件而破坏构建。
你可以做的是以这种方式加载这个文件:
const cacheDirectory = path.join(process.cwd(), '.next/server/pages/');
const fileContents = await fs.readFile(cacheDirectory + '/contact.json', 'utf8');
当您执行 yarn start
时,这将构建得很好并且可以工作。但是...当您执行 yarn dev
时它不会工作,因为此命令会清除构建文件夹。要解决此问题,您可以检查 NODE_ENV
值并仅在 production
模式下运行此逻辑,并在此场景中使用一些模拟数据。
关于javascript - 有没有办法从 NextJS API 路由读取 getStaticProps 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73464899/
我正在尝试在 Next.js 环境中使用 SWR。 const Best = (props: InferGetStaticPropsType) => { const { data } = useS
我用下一个 js 和 typescript 开始了一个项目。我有一个主组件,我在 index.js 页面中调用它 我在主组件中使用 getStaticProps 函数 getStaticProps 返
我在一个项目中使用 NextJs,我创建了一个组件来加载动态数据,如果我通过 localhost:3000/faq 加载,它可以正常工作,但如果我尝试导入将相同的组件放入 index.js 时,会发生
我有一个具有简单用户身份验证的 nextjs 应用程序。这意味着我不希望注销的用户访问一些 protected 路由。该应用程序在开发版本中成功编译并按预期工作。但是当我使用 next build ,
我会简单点: 链接:http://localhost:3000/product/bioCloths?activeCategory=medium&id=0文件路径:pages/product/[prod
我正在 Next 中构建一个项目。目前,我有一个自定义 App 组件,它安装了页眉和页脚组件。 现在我想从 API 填充页眉/页脚的内容(在构建时,因为它不会经常更改)。但是,getStaticPro
我正在使用路由获取页面 ex。 page/[id].js 并仅显示该 id 的数据。那么每次访问这个页面都会重新获取数据吗?前任。通过此页面上的链接转到下一页,然后按返回返回此页面。就像在使用 Did
我正在使用路由获取页面 ex。 page/[id].js 并仅显示该 id 的数据。那么每次访问这个页面都会重新获取数据吗?前任。通过此页面上的链接转到下一页,然后按返回返回此页面。就像在使用 Did
😂 好久前写了关于 getStaticProps 和 getStaticPaths 的内容,然而半年过去了源码解析就一直忘记了,不久前有人提醒才想起来,补下坑。 本文主要是
我正在尝试使用 getStaticProps (Next.js) 呈现登陆页面,但它没有按预期运行。这是我的组件: import { GetStaticProps } from 'next' cons
所以我有 getStaticProps 并且需要根据变量获取一些数据这里是一个例子 export async function getStaticProps() { const res = awa
我需要访问 getStaticProps 中的 referer;有什么方法可以访问它?我知道如何使用 getServerSideProps 访问,但不确定 getStaticProps。 使用getS
我想列出一堆产品,我想在 Node 上请求数据并以静态方式构建页面,这样主页会更快。 问题是当我在 GetStaticProps 上发出超过 80 个请求时。 以下包含 80 个项目的代码确实有效 c
我现在非常忙于构建我的第一个 Next.JS 应用程序(Next 和 Strapi)。现在一切正常,但我很好奇在使用 getStaticProps 时实现错误处理的最佳方法是什么? . 我自己尝试了一
我基本上是在 Next.js 上开发一个博客。因为它是负责后端的另一个团队,所以我目前正在从 getStaticProps 获取 API 调用以获取我的文章,即使直接进行数据库查询是更好的做法: ex
我从 getStaticProps 返回了 json 响应,控制台将其记录在 getStaticProps 中以验证正确的 json 响应。所以, fetch 工作正常,我从 API 得到正确的响应。
所以我对 getStaticProps 有点困惑.getStaticProps在构建时运行以生成静态页面。 我的问题是,如果我有一个在发布新帖子时更新的博客,我不应该使用 getStaticProps
我正在尝试从一个因 URL 而异的 API 中获取数据,尝试使用 withRouter 来完成它,但它似乎在 getStaticProps 中不起作用。 我目前有以下代码: export async
我正在将 Next.js 与上下文 API 和样式组件一起使用,但似乎无法获得 getStaticProps在职的。 我读过其他帖子,他们经常谈论自定义 _app我确实有,但在使用上下文 API 之前
我有这个 NextJS 站点,其中有从 Firestore 加载数据的 getStaticProps。 我有这个: return { props: { allPosts: post
我是一名优秀的程序员,十分优秀!