问题标签 [ssg]

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.

0 投票
1 回答
606 浏览

reactjs - 如何在 Next.js SSG 或 SSR 中使用 Redux 工具包调度?

我很长时间无法解决使用 Hook 的问题,例如useDispatchingetStaticPropsgetServerSideProps. 我redux-toolkit用于管理状态并使用 Next.js ,但是useDispatch在我的 SSG 函数中使用 ( ) 时出现错误

错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。

我还找到了解决该问题的解决方案,该解决方案使用redux-next-wrapper. 但我想知道是否有另一种方法可以解决我的问题,除了redux-next-wrapper

0 投票
0 回答
37 浏览

angular - 当 scully 生成的静态页面已经包含最新数据时如何延迟加载数据

我有一个角度项目。在我的 home 组件上,我通过 ngOnInit 方法从后端服务器加载实时数据。它工作得很好。但是为了提高性能,我使用了 Scully,它为我的 home 组件生成了一个静态页面。现在,当我在浏览器中加载我的页面时,它会下载静态页面。其中包含所有最新数据。这意味着,我不必再次加载数据。

即使我禁用 Javascript,生成的页面也会按预期工作。所以我的问题是当浏览器加载的页面已经有实时数据时,如何避免加载实时数据。

我最初的方法是使用文档对象检查元素,但不幸的是,一旦我在 ngOninit 中,即使它在那里也找不到元素。这里;是我的代码

有没有办法做到这一点?

如果我使用静态客户端渲染,那么 lighthouse 评估的性能非常糟糕(即使使用由 ng new app 生成的默认角度项目),这就是为什么我必须使用静态生成的页面。

0 投票
0 回答
37 浏览

reactjs - 如何避免 Next.js 中的页面闪烁?(静态页面显示在决定渲染内容的脚本执行之前)

我有一个 Next.js 应用程序,该应用程序具有使用 SSG(静态页面生成)的索引页面和在 url 中包含子域的页面。

预期的行为 - 当 url 是hostname.com我想呈现主静态页面,但是当 url 是company1.hostname.com我想用 company1 数据呈现内容。

问题 - 当我首先访问company1.hostname.com时,我得到主要的静态页面,然后决定渲染什么的脚本取决于子域的执行,如果我们有一个子域 - 我们会显示包含子域数据的页面。它导致内容闪烁(首先显示主页然后立即显示子域页面)。

我的主页代码:

如何避免页面闪烁?是否可以在 getStaticProps 函数中检索 url 数据(子域、主机名等)?

0 投票
1 回答
29 浏览

ssg - (ssg-wsg) 不断收到错误代码 403 的错误

我在 UAT 阶段并尝试调用 UAT API,但不断收到错误代码 403 的错误,我做了什么才能调用 API,下图是我的代码

在此处输入图像描述

0 投票
1 回答
41 浏览

react-router - 如何将 next.js 的 SG 页面与某些页面的 firebase 托管和 CSR 路由相结合

我想在 firebase 托管上发布我的网站。
我在 Next.js 中使用静态生成来创建一个页面。
但是,有些页面我想做动态路由,比如博客。

URL 看起来像这样“blog/[slug]”
如果在首页以外的页面上重新加载,它将是 404,所以使用 next.config。
“尾随斜线:真”已设置。

当使用 SG 执行动态路由时,页面会导出一个文件,例如“blog/[slug]/index.html”。

通常,它适用于从顶部屏幕转换,但如果您使用该 URL 重新加载,它将是 404。

解决此问题的一种方法是检测博客是否已更新并使用 WebHook 等重新构建并部署它。

网站上有各种方法可以做到,但是由于更新频率很高,每次都很难构建。

接下来,我正在考虑仅针对 SG 站点中的博客部分进行 CSR(客户端渲染)。
你不能使用常规的 React 路由器进行路由吗?关于它。
我尝试仅将 React Router 用于某些页面,但由于 React Router 不是服务器端进程,因此出现错误。

我想做的第二件事可行吗?

如果您对此问题有任何其他解决方案,请告诉我。

PS:由于冷启动问题,无法使用 Firebase 功能...

最良好的问候。

0 投票
0 回答
25 浏览

next.js - 部署后生成下一个 JS 页面

所以我一直在使用 Nextra(NextJs 库)进行静态站点和 mdx 生成https://nextra.vercel.app/

所以基本上这是一篇我想要动态呈现的博客文章 我一直在使用 firebase 也获取静态路径 Firebase Database Structure

因此,链接将类似于 /post/{firebaseDocID} 在这里我面临 mdx 文件的静态站点生成问题,在 nextra 中,mdx 页面正在生成

所以在部署之后我可以访问那个页面,但是如果添加了一些新的 blogPost 并且它没有带我去那里而是说 404,页面找不到但是当我再次重新部署站点时它会生成新的 blogPost .html 和链接完美。

0 投票
0 回答
16 浏览

next.js - Next.js - 长时间未访问的页面首次作为非静态服务

我试图了解我的 Next.js 应用程序中的一个边缘案例。我有静态渲染页面。我确信它们被用作静态页面,来自构建消息,并且在渲染期间我确实看到了页面源上的数据。我已经重新验证了 5 秒。我注意到的情况是,如果用户长时间未请求页面,则第一个发出请求的用户会收到非静态页面,并且在视图源中看不到数据。后备在所有页面中设置为阻止。

这是 Next.js 的预期行为还是我的应用程序有问题?谢谢。

0 投票
1 回答
27 浏览

javascript - 什么是静态站点生成?

我知道静态站点生成的想法,这里的问题是,如果 SSG 在构建时获取数据,在我的下一个应用程序中,我使用事件处理程序根据搜索关键字获取一些数据,它的工作原理是如何。

这是我的代码:下面是下一个天气应用程序中 Input 组件的代码,我使用handleSubmit事件处理程序,它从 API 端点获取天气数据。