问题标签 [getstaticpaths]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
next.js - 如何使用我的 axios 调用 getStaticPaths 和 getStaticProps
我有一个组件通过单击我注册后发送的帐户验证电子邮件中的链接来调用我的服务器来呈现响应(已成功验证,已验证,并且此令牌已过期) 。
在极少数情况下,UI 会呈现,但它的内容不会,所以我正在阅读有关getStaticProps 和 getStaticPaths的 Next 文档,并认为我需要预渲染\o/
现在我useEffect
在组件中使用钩子:
但我现在想做的是用预渲染的数据填充这个坏男孩,
我被困在如何处理它上,因为在组件级别上,正如您所看到的,我创建了一些对 axios 调用做出反应(哈!)的钩子。我不知道如何连接getStaticProps
阅读文档感觉就像你需要使用getStaticPaths
它......
任何帮助,将不胜感激!
javascript - Next.js 9.3+ 和包罗万象的路线
Next.js 初学者在这里,希望获得有关使用getStaticPaths
和getStaticProps
使用包罗万象的路线的指针。大多数 Next.js 9.3+ 博客启动器似乎仅基于一个级别的博客文章(例如,,/posts/post-1.md
等/posts/post-2.md
),但我徒劳地试图找到的是一个启动器 - 或者只是一组说明 - 解决处理,比如说,/posts/yyyy/mm/postname.md
通过/pages/posts/[...post].js
。
当然,我确实阅读了有关这些项目的 Next.js 文档,但我发现它们至少在这种特殊情况下有点帮助。我确实意识到它们是为更有经验的 Next.js 开发人员编写的。来自https://nextjs.org/docs/routing/dynamic-routes的这一项让我现在尽可能接近,但还不够远:
如果页面名称使用包罗万象的路由,例如
pages/[...slug]
,params
则应包含slug
which 是一个数组。例如,如果这个数组是['foo', 'bar']
,那么 Next.js 将在 处静态生成页面/foo/bar
。
我尝试使用fs-readdir-recursive
来读取/posts/
目录的各个级别并且有效,但是它给我的东西并没有产生getStaticPaths
想要的数组。我确定我只需要按摩结果,但找不到任何示例来帮助我弄清楚。(大多数确实比一级场景更进一步的例子似乎处理从数据库中获取,也许是因为我试图找到的场景被认为太简单了。对于非初学者来说可能是这样,但是......)
next.js - 在 NextJS 中使用 Snowflake 无法连接或执行 getStaticPaths/getStaticProps 中的查询
我现在一直在用 NextJS 进行一些修改,并试图将应用程序转换为使用getStaticProps
和getStaticPaths
使用 [id].js 文件为每个页面在他们自己的单独文件夹中的预渲染静态页面(类似于 pages/posts/[id] .js、/pages/articles/[id].js 等)。由于这两个函数保证在服务器上运行,我选择将 fetch db 函数从我的公共 API 直接移动到这些函数。所以在我的[id].js
文件中,我有这样的东西:
获取静态属性:
获取静态路径:
当我使用 npm run build 构建应用程序时,我得到的只是Connecting to Snowflake...
and Found paths: []
,然后显然getStaticProps
会中断,因为列表是空的。我不确定为什么无法建立连接,或者为什么我什至没有收到错误或成功输出。我假设 Snowflake 如何异步连接存在一些问题,但我不明白为什么“await”关键字在这种情况下什么都不做。我可以添加或删除“等待”,结果完全相同。
reactjs - `getStaticPaths() 获取所有帖子时是否会影响性能,哪些帖子总共是一百万个帖子?
我对这件事很好奇;在Next.JS 文档中,预渲染将获取所有帖子并将其映射以根据 id 查找数据。
当帖子总数超过一百万时,这会影响性能吗?
next.js - NextJS: "TypeError: Cannot read property 'toLowerCase' of undefined"
While usign the getStaticPaths()
and getStaticProps()
I am getting the error NextJS: "TypeError: Cannot read property 'toLowerCase' of undefined"
next.js - getStaticPath 和 URL 中需要的 filetype
在/pages
我有[page].js
和index.js
。
[page].js
通过“CustomPage”的值生成所需的页面。它的内容来自一个 Data-JSON-File。
只要我从主页开始并使用网页内的链接,它就可以正常工作。例如,我现在有 2 页:/impressum 和 /datenschutz。
所以点击链接“Impressum”打开myDomain.com/impressum
(它工作,但请注意,最后没有.html)。
但是,如果我刷新页面,或者myDomain.com/impressum
直接在浏览器的地址栏中输入,我会收到一个未找到的错误(来自 nginx-server,而不是来自下一个!)。
第二次尝试
由于我需要一个完全静态的页面,并且出于测试目的在文件中添加了getStaticPath
和getStaticProps
,因此将创建“真实”的 html 文件:
但这将我引向下一个问题:我在网页中实现了内部链接,如下所示:
它仍然引导用户myDomain.com/impressum
,现在另外还有myDomain.com/impressum.html
可用的。从 SEO 的角度来看,这是两条不同的路径。
我如何将它们统一起来,以便我只有一个路径 - 无论是从我的网页中打开它,还是直接输入它。
解决方法的想法 (??)
当然,我可以在任何地方使用类似的东西:
但这仅在页面导出并复制到服务器时才有效。因为这行不通,因为 .html 文件不存在......所以我在页面上工作时会丢失“页面预览” next dev
。next start
所以我唯一的想法是为.env.development
&设置一个 ENV-Variable.env.production
并将 NEXT 中的 -Component 封装在 HOC 中。在那个 HOC 中,我可以检查我当前是否处于开发或生产中,并且不要将 .html 用于这些链接......否则将 .html 添加到链接中。
你说什么。您还有其他解决方案吗?
reactjs - 我是否需要在 getStaticProps Next.JS 中为页面中的列表使用 revalidate 键?
我正在使用 Next.JS 制作静态电子商务应用程序。
我有产品目录index.js
和[id].js
文件。我是否需要在返回所有产品列表的文件中使用revalidate: someTime
以products/index.js
保持列表最新?或者它的功能仅适用于产品单个页面 ( [id].js
)?
提前感谢您的帮助!
mongodb - 在动态路由的情况下,getstaticprops 不能使用 getstaticpaths 中的参数?MongoDB
我正在制作一个网页,该网页从 mongoDB(atlas BASIC 免费计划)中获取数据,并具有带有 SSG 的动态路由页面。动态路由页面,[cogid].js,有 getstaticpaths 和 getstaticprops。getstaticpaths 似乎有效,但 getstaticprops 无效。我猜问题是getstaticprops中的变量“params.cogid”......
reactjs - NEXT.js ISR 移除静态页面
我对 ISR 有一点问题。我有 revalidate 道具等于 1 像这里
当我在 Contentful 中创建产品时,页面按预期创建。当我想进入不存在的页面时,我得到了预期的 404 错误。当我在现有产品的 Contentful 中更改某些内容或删除它时,问题就开始了。
当我在 Contentful 中删除产品时,产品页面中的产品列表会更新并且产品会消失,但我仍然可以进入该产品的页面。此外,当我重命名产品名称时,产品列表会更新,但我仍然可以进入较早的页面名称。
有什么办法可以解决这个问题吗?
获取静态路径
产品页面
编辑 当我在我的 product77 构建中重新验证静态页面后,我在 Contentful 中将产品名称从“product77”更改为“product7”仍然存在并且我仍然可以进入该页面。
重新验证后不应该删除吗?
javascript - 如何使用 JavaScript 重命名和保存提取的页面
我有一个 28 页的 pdf 文件。我想创建一个按钮,允许我提取第 5 页并重命名它,然后再将其保存到文档文件夹中。使用另一个按钮,我想通过电子邮件将第 5 页重命名为附件。我创建了这个函数:
此功能有效。我在 acrobat 论坛中搜索了解决方案,但未能创建正确的“cPath”公式。这是我要以pdf格式保存重命名页面的目录“/C/Users/用户名/Documents/QUESTION.pdf”有人可以帮我吗?谢谢