我已经安装了多个元标签,如标题、描述、关键字等。
然而,它不显示这些标签在视图源。因此,Facebook的分享卡无法使用(我已经安装了 og
标签,但在Facebook的Scrapper或我的视图源中似乎找不到它们。然而,在客户端幻灯片上却有标签。
我的头部格式(在客户端检查DevTools中显示标签,但在视图源中没有)。
import Head from 'next/head';
export default () => (
<>
<Head>
<meta property="og:title" content={title} />
<meta property="og:url" content={url} />
</Head>
<Header />
<Body />
<Footer />
</>
)
输出(Redacted Page Props)。
<!DOCTYPE html><html><head><style data-next-hide-fouc="true">body{display:none}</style><noscript data-next-hide-fouc="true"><style>body{display:block}</style></noscript><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/development/pages/_app.js?ts=1592258092029" as="script"/><link rel="preload" href="/_next/static/development/pages/Home.js?ts=1592258092029" as="script"/><link rel="preload" href="/_next/static/runtime/webpack.js?ts=1592258092029" as="script"/><link rel="preload" href="/_next/static/runtime/main.js?ts=1592258092029" as="script"/><noscript id="__next_css__DO_NOT_USE__"></noscript></head><body><div id="__next"></div><script src="/_next/static/runtime/react-refresh.js?ts=1592258092029"></script><script src="/_next/static/development/dll/dll_f9de5cbc314a1e41f91e.js?ts=1592258092029"></script><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps": "page":"/Home","query":{},"buildId":"development","isFallback":false,"gssp":true}</script><script nomodule="" src="/_next/static/runtime/polyfills.js?ts=1592258092029"></script><script async="" data-next-page="/_app" src="/_next/static/development/pages/_app.js?ts=1592258092029"></script><script async="" data-next-page="/Home" src="/_next/static/development/pages/Home.js?ts=1592258092029"></script><script src="/_next/static/runtime/webpack.js?ts=1592258092029" async=""></script><script src="/_next/static/runtime/main.js?ts=1592258092029" async=""></script><script src="/_next/static/development/_buildManifest.js?ts=1592258092029" async=""></script><script src="/_next/static/development/_ssgManifest.js?ts=1592258092029" async=""></script></body></html>
问题似乎来自Redux Persist,它禁用了SSR。在服务器端禁用PersistGate似乎可以解决这个问题。
return process.browser ? (
<PersistGate persistor={store.__persistor} loading={<div>Loading</div>}>
<ToastProvider>
<Component {...pageProps} />
</ToastProvider>
</PersistGate>
) : (
<Provider store={store}>
<ToastProvider>
<Component {...pageProps} />
</ToastProvider>
</Provider>
);