gpt4 book ai didi

reactjs - Gatsby 没有生成正确的静态 HTML 文件

转载 作者:行者123 更新时间:2023-12-04 02:43:26 24 4
gpt4 key购买 nike

我正在开发一个基于 Gatsby 的网站,目前该网站的开发进展顺利。但是在为生产构建时遇到了一个问题,即我们没有在各种页面索引文件中获得任何静态 html,而是看起来 Gatsby 将尝试从 javascript 注入(inject)页面,这与我们的预期相反。

我看到了一些与 Gatsby 离线插件相关的帖子,但我已禁用这些帖子,但这并没有解决问题。我们的页面不包含静态 html 输出,我希望 react-helmet 注入(inject)的元内容也不存在。

是否有关于如何调试构建以查看可能重置静态输出并将其替换为动态生成的 Gatsby 引导代码的建议。

网站使用的插件有:

 plugins: [
`gatsby-plugin-react-helmet`,
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
background_color: `#663399`,
theme_color: `#663399`,
display: `minimal-ui`,
icon: `src/images/favicon.png`, // This path is relative to the root of the site.
},
},
`gatsby-transformer-json`,
{
resolve: `gatsby-source-filesystem`,
options: {
name: 'data',
path: `${__dirname}/src/data/`,
},
},
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
},
`gatsby-plugin-styled-components`,
// this (optional) plugin enables Progressive Web App + Offline functionality
// To learn more, visit: https://gatsby.dev/offline
//`gatsby-plugin-offline`,
{
resolve: 'gatsby-plugin-root-import',
options: {
src: path.join(__dirname, 'src'),
pages: path.join(__dirname, 'src/pages'),
images: path.join(__dirname, 'src/images'),
},
},
`gatsby-plugin-transition-link`,
{
resolve: `gatsby-plugin-google-analytics`,
options: {
trackingId: process.env.GOOGLE_ANALYTICS_TRACKING_ID,
head: true,
},
},
]

提前感谢您的任何指点

最佳答案

遇到同样的问题。

PersistGate 似乎破坏了 ssr。由于 ssr 是在构建期间完成的,我们不需要它,我们可以检查我们的环境。

wrap-with-provider.js 从 1. 更改为 2. 成功了

import React from "react"
import { Provider } from "react-redux"
import { PersistGate } from 'redux-persist/integration/react'

import {store, persistor} from "./src/redux/store"

1:

export default ({ element }) => (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
{element}
</PersistGate>
</Provider>
)

2:

export default ({ element }) => {
if (typeof window === "undefined") {
return (
<Provider store={store}>
{element}
</Provider>
)
}
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
{element}
</PersistGate>
</Provider>
)
}

关于reactjs - Gatsby 没有生成正确的静态 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58238525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com