错误#95313为路径“ / 404 /”构建静态HTML失败
我最近使用react-intl包在我的gatsby项目中实现了本地化。通过模仿 gatsby-starter-default-contentful-i18n回购中软件包的实现,我能够实现这一目标。当我运行gatsby-develop时,一切正常,但遗憾的是,在运行build之后,一切都不一样。
react-intl软件包需要一些路由配置才能启动并运行,这使我利用了布局组件中的位置道具,该组件暴露于路由路径,我也使用较早的链接回购协议将其实现为指南。但是,我总是遇到这个错误。
const url = location.pathname;
| ^
36 | const { langs, defaultLangKey } = data.site.siteMetadata.languages;
37 | const langKey = getCurrentLangKey(langs, defaultLangKey, url);
38 | const homeLink = `/${langKey}/`;
-WebpackError: TypeError: Cannot read property 'pathname' of undefined.
我一直指向url变量。我确保对所有从布局组件父代传递过来的位置道具进行交叉检查,以确保它们都不是未定义的,但仍然没有骰子。我真的不知道从哪里开始调试此问题。 下面是我的index.js文件。
import React from 'react';
import { graphql, navigate, withPrefix } from 'gatsby';
import { getUserLangKey } from 'ptz-i18n';
class RedirectIndex extends React.PureComponent {
constructor(args) {
super(args);
// Skip build, Browsers only
if (typeof window !== 'undefined') {
const { langs, defaultLangKey } = args.data.site.siteMetadata.languages;
const langKey = getUserLangKey(langs, defaultLangKey);
const homeUrl = withPrefix(`/${langKey}/`);
navigate(homeUrl);
}
}
render() {
// It's recommended to add your SEO solution in here for bots
// eg. https://github.com/ahimsayogajp/ahimsayoga-gatsby/blob/master/src/pages/index.js#L22
return (<div />);
}
}
export default RedirectIndex;
export const pageQuery = graphql`
query IndexQuery {
site{
siteMetadata{
languages {
defaultLangKey
langs
}
}
}
}
`;
提前感谢所有帮助!