- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经设置了一个动态路由静态生成的页面组件(希望是这样吗?),它在开发模式下完美运行。我可以在我的 headless CMS (KeystoneJS) 中创建页面,并且可以在我的本地开发人员中创建和查看这些页面。
但是,当我运行 npm run build
(对于 CI)时,我得到了这样一个奇怪的错误:
type: 'ApolloError',
graphQLErrors: [],
networkError: {
message: 'request to http://localhost:3000/admin/api failed, reason: connect ECONNREFUSED 127.0.0.1:3000',
type: 'system',
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED'
}
还有一些:
events.js:287
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at process.target._send (internal/child_process.js:806:20)
at process.target.send (internal/child_process.js:677:19)
at callback (/Users/ibrahim/projects/guppy-tron/node_modules/worker-farm/lib/child/index.js:32:17)
at module.exports (/Users/ibrahim/projects/guppy-tron/node_modules/terser-webpack-plugin/dist/worker.js:13:5)
at handle (/Users/ibrahim/projects/guppy-tron/node_modules/worker-farm/lib/child/index.js:44:8)
at process.<anonymous> (/Users/ibrahim/projects/guppy-tron/node_modules/worker-farm/lib/child/index.js:55:3)
at process.emit (events.js:310:20)
at emit (internal/child_process.js:876:12)
at processTicksAndRejections (internal/process/task_queues.js:85:21)
Emitted 'error' event on process instance at:
at internal/child_process.js:810:39
at processTicksAndRejections (internal/process/task_queues.js:79:11) {
errno: 'EPIPE',
code: 'EPIPE',
syscall: 'write'
}
这是我的页面组件的样子:
import React from 'react';
import { GetStaticPaths, GetStaticProps } from 'next';
import {
GET_ALL_STATIC_PAGES,
GET_STATIC_PAGES_BY_URL,
IStaticPage,
} from '../../graphql/static-page-queries';
import client from '../../graphqlClient';
import BlocksContent from '../components/BlocksContent';
interface IPageProps {
pageData: IStaticPage;
}
const Page = ({ pageData }: IPageProps) => {
return (
<div className="mh2 mh3-ns">
<h1 className="f1">{pageData.title}</h1>
<BlocksContent content={pageData.content} />
</div>
);
};
enum Status {
published = 'published',
draft = 'draft',
archived = 'archived',
}
export const getStaticPaths: GetStaticPaths = async () => {
const { data, errors } = await client.query({
query: GET_ALL_STATIC_PAGES,
variables: { status: Status.published },
});
if (errors) {
console.log('error in query in getStaticPaths, ', errors);
}
const paths = data.allStaticPages.map((page) => {
return { params: { url: page.url } };
});
return {
paths,
fallback: false,
};
};
export const getStaticProps: GetStaticProps = async ({ params }) => {
const { data, errors } = await client.query({
query: GET_STATIC_PAGES_BY_URL,
variables: { url: params.url },
});
if (errors) {
console.log('error in query in getStaticProps, ', errors);
}
const { allStaticPages } = data;
const pageData = allStaticPages[0];
return {
props: {
pageData,
},
};
};
export default Page;
这是我的 ApolloClient:
import { ApolloClient } from 'apollo-client';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { createHttpLink } from 'apollo-link-http';
const isBrowser = typeof window !== 'undefined';
const uriHost = !isBrowser ? 'http://localhost:3000' : '';
const cache = new InMemoryCache();
const link = createHttpLink({
uri: `${uriHost}/admin/api`,
credentials: 'same-origin',
});
const client = new ApolloClient({
ssrMode: typeof window === 'undefined',
cache,
link,
});
export default client;
有什么想法吗?
最佳答案
您正在尝试在您的 CI 环境中请求您的本地资源 localhost:3000
。您必须将您的后端 (Keystone) 托管到某个服务器,我使用 Heroku,(但在任何地方)并获得一个 URL,您的 CI 可以访问该 URL。
关于reactjs - 将 apollo-client 与 NextJS getStaticPaths 和 getStaticProps (SSG) 结合使用 - 构建时出错 - ECONNREFUSED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62272538/
我有下一个 js 应用程序,我有一个 API 可以返回 1000 万个帖子,我想知道我使用 SSG 方法来执行此操作是否标准?另外,我可以随时添加帖子。 最佳答案 继续评论, 您当前的实现很可能存在以
我试图理解为什么 Next.js 将我的一些页面构建为 SSG,而其中一些页面构建为静态,而它们都使用 getStaticProps。 让我们以我的 404 页面为例,该页面使用 getStaticP
本文以 React 、 Vue 为例,介绍下主流的渲染模式以及在主流框架中如何实现上述的渲染模式。 前置知识介绍 看渲染模式之前我们先看下几个主流框架所提供的相关能力,了解的可跳
我正在开发一个 Next.js 电子商务 应用程序,其中包含许多页面,其中一些是所有产品页面、特定产品页面、博客文章页面、个人资料页面、购物车页面等等。这个应用程序需要强大的 SEO,因此我选择了 N
我们将使用 Nuxt.js 开发供内部使用的仪表板。由于这将是一个内部仪表板,因此不需要通用模式。通常大部分仪表板都是在 SPA 中开发的。 但 SPA 还需要服务器将初始 HTML 和 js 包发送
NextJS 导出一个静态站点,结构如下: |-- index.html |-- article.html |-- tag.html |-- article | |-- somearticle.h
我有带有 SSG 的 NextJS 应用程序。此功能是最近添加的,根据它,我应该在 next-build 之后执行 next-export 来获取静态文件。但在增量静态再生 9.4 中出现后,我需要通
我对网络开发还是个新手,我正在尝试使用 Nuxt 和 Strapi 作为 CMS 构建一个电子商务应用程序,以使网站所有者(在本例中也是我)能够轻松添加/编辑/删除产品。 我找到了很多关于这个主题的文
我对网络开发还是个新手,我正在尝试使用 Nuxt 和 Strapi 作为 CMS 构建一个电子商务应用程序,以使网站所有者(在本例中也是我)能够轻松添加/编辑/删除产品。 我找到了很多关于这个主题的文
我有点困惑,为什么我的其中一个页面构建为SSG页面,而不是静态页面。
本文主要是讲讲如何使用 Next.js 框架实现服务端渲染,将有效提升网页的 SEO 和首屏渲染速度,说不定哪天就用上了,是吧! 1、服务端渲染(SSR) 服务端渲染(SSR,Server
我启动了一个简单的 SSG NextJS 项目来构建我的个人网站/作品集:https://gitlab.com/soykje/soykje.gitlab.io ,我想使用 Gitlab 页面进行部署(
我需要使用 laravel 和 nuxtjs 开发一个网站。 据我所知,SSR 模式是 nuxtjs 的高级功能之一,但它需要运行 nuxt 服务器。换句话说,我们需要像nginx一样在服务器上部署l
我有一个 NextJS 站点,它是在构建 (SSG) 时静态生成的。 接下来我需要实现两件事 谷歌分析 符合 GDPR 的选择加入 cookie 选项 第一个很容易做到,但是我正在努力使这个 GDPR
我收到此错误 "Error: getStaticPaths is required for dynamic SSG pages and is missing for 'xxx'"当我尝试在 NextJ
我知道这个话题并不新鲜,我发现(并阅读)了一些讨论。我找不到的是我仍然存在的问题的答案。 其他人如何解决无法在 _app.js 中使用 getStaticProps 的问题? getInitialPr
我已经设置了一个动态路由静态生成的页面组件(希望是这样吗?),它在开发模式下完美运行。我可以在我的 headless CMS (KeystoneJS) 中创建页面,并且可以在我的本地开发人员中创建和查
我是一名优秀的程序员,十分优秀!