gpt4 book ai didi

javascript - 对于 Astro.js,如何将页面内容(seo 元标记)注入(inject) Astro 布局的 部分?

转载 作者:行者123 更新时间:2023-12-03 07:59:29 24 4
gpt4 key购买 nike

我有一个 Astro.js 布局文件,其中包含页眉、页脚以及我希望在网站每个页面上显示的所有其他内容。我想将页面内容放入两个区域(名称槽)。中的一个区域和中的一个区域(页眉和页脚之间)

粗略地说,这是我的layout.astro:

---
import '../styles/global.styl'
import '../styles/page.styl'
---

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">

<slot name='head' />

<meta name="viewport" content="width=device-width">
<link rel="shortcut icon" href="/images/favicon.ico">
</head>
<body>
<header>
<a href="/">Company Name</a>
<nav>
<a href="/">Home</a>
<a href="/about">About</a>
</nav>
</header>

<slot name='body' />

<footer>
<p id="copyright">© {new Date().getFullYear()} Company Name</p>
</footer>
</body>
<html>

这两个插槽(头部和主体)将从我的页面接收内容。我的页面目前如下所示:

---
import Layout from '../layouts/page.astro'
import PageSeo from '../components/PageSeo.astro'

var { info = {} } = Astro.props
info.title = '404 - Not Found'
info.description = 'The page you requested could not be found. Please check the spelling of the URL.'
info.image = 'image link'
info.url = 'page url'
---

<Layout title={info.title}>

<head slot='head'>
<PageSeo page={info} />
</head>

<main slot='body'>

<h1>404 - Not Found</h1>
<p>Hm... You’ve arrived at a page that does not exist. Computers are a bit literal, try checking the spelling of the link you typed.</p>

</main>

</Layout>

正文内容可以很好地滑入,但 SEO 内容(或我尝试注入(inject)头部的任何内容)却不能。我想不出 HTML 中可以在文档头部接受的包装元素。

想法?

最佳答案

在 Discord 上看到了您的帖子。

您只需要将 slot 属性放在组件上,而不需要创建另一个 <head>元素。就像这样:

<Layout title={info.title}>

<PageSeo slot='head' page={info} />

<main slot='body'>

<h1>404 - Not Found</h1>
<p>Hm... You’ve arrived at a page that does not exist. Computers are a bit literal, try checking the spelling of the link you typed.</p>

</main>

</Layout>

我相信您的做法创建了另一个 head 元素。

Astro 中还有一些 SEO 集成,这可能会节省您一些时间!他们做的事情非常相似(甚至更多)。在这里查看它们: https://astro.build/integrations/performance+seo/

关于javascript - 对于 Astro.js,如何将页面内容(seo 元标记)注入(inject) Astro 布局的 <head> 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74879055/

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