【发布时间】:2024-01-22 21:26:01
【问题描述】:
我有一个 nuxt 项目,其中元标题和描述来自(来自 nuxt/content)。 数据的异步获取在索引中进行,并通过 getter 在子组件中接收。
在生成时,元标记在那里,但在 ssr 上却没有:/
我尝试了异步和等待,但我仍然收到错误
Uncaught (in promise) TypeError: seoTitle is undefined
(我尝试了一个没用的await this.getArticle const,希望整个事情都在等待,这个东西在那里,但是没有)
这是我的代码:
async head() {
const article = await this.getArticle
const seoTitle = await this.getArticle.seoTitle,
title = await this.getArticle.title,
seoDescription = await this.getArticle.description
return {
title: `"${
seoTitle.length ? seoTitle : title
}"`,
meta: [
{
hid: "description",
name: "description",
content: `${
seoDescription.length
? seoDescription.slice(0, 50)
: seoDescription.slice(0, 50)
}`,
},
],
};
},
【问题讨论】:
-
@TimothyAlexisVass 为什么不呢?我也不使用它们,而 ESlint 做得很好。另外,
On generate, the meta tags are there but on ssr not是什么意思。你确实有target: static和ssr: true,对吧?它们怎么会在生成时出现? -
是的,谢谢。我可能表达得不够详细。实际上它发生在开发模式下。我已经用 asyncDate 获得了数据。当我将它导出到静态文件中时(通过 generate --modern),它会正确添加元标记。所以这很好。但我想知道如何在 ssr 模式下存档?或者,一旦我运行构建,它会起作用吗?如果没有,如何拥有条件元标记,比如我想通过:seoTitle.length 拥有它们? seoTitle : 标题
-
我的第一个问题仍然有效。另外,请尝试在本地构建您的应用程序以进行调试。
-
是的@kissu 目标是 statis,配置文件中根本没有 ssr。 (目前该项目应该是静态的。但我的下一个项目不会)
-
ssr: true是默认值,使用target: static,你应该很好。当你是yarn generate+yarn start时它是否有效,你看到你的元数据了吗?
标签: javascript nuxt.js meta-tags