Nextjs Head标签将Meta和link标签中的& sign转换为

2skhul33  于 2023-10-18  发布在  其他
关注(0)|答案(2)|浏览(153)

让我们假设我有这个组件。

import Head from 'next/head';

export const Index: React.FC = () => {
  const myUrl = `https://example.com/books/filter/authorName='DavidJames'&inStock=true`;
  return (
    <Head>
      <link rel='canonical' href={myUrl} />
      <meta property='og:url' content={myUrl} />
    </Head>
  );
};

export default Index;

您可以看到URL包含&符号。当我点击View page source时,我看到&符号被转换为&amp;,所以最终的url看起来像这样https://example.com/books/filter/authorName='DavidJames'&amp;inStock=true
但这样做,链接部分断开,只有第一个过滤器将被后端代码正确解析。
如何解决这一问题?

**编辑:**我注意到这个问题只发生在开发环境中。

4ioopgfo

4ioopgfo1#

你有没有试过在url上使用双引号而不是反引号?

const myUrl = "https://example.com/books/filter/authorName='DavidJames'&inStock=true"

也可以尝试在&字符前添加一个反斜杠,如下所示

const myUrl = `https://example.com/books/filter/authorName='DavidJames'\&inStock=true`
31moq8wy

31moq8wy2#

你建议的都不起作用,Nextjs渲染<meta property="test" content="&amp;"/>而不是<meta property="test" content="&"/>
“next”:“12.3.0”,

相关问题