首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nuxt内容:如何获取标记内容并插入静态页面?

Nuxt内容:如何获取标记内容并插入静态页面?
EN

Stack Overflow用户
提问于 2022-09-09 11:14:38
回答 1查看 19关注 0票数 0

一些背景

我正在构建一个博客,其内容主要来自于NuxtJS内容,它的内容主要来自于降价文件。

如果有帮助,您可以在Github (或已部署的站点这里)上看到我的项目。

我理解如何从/content下的MD文件创建动态页面。

但我不知道如何将其中一个文件的内容注入静态页面。

代码语言:javascript
复制
content/
├── blog/
│   ├── post1.md
│   ├── post2.md
├── privacy/
│   ├── policy.md
│   └── something-else.md
pages/
├── blog/
│   ├── _slug.vue
├── privacy/
│   ├── _slug.vue
├── privacy.vue
├── index.vue

使用我当前的方法/知识,我生成了一个基于policy.md的动态页面:

代码语言:javascript
复制
<template>
    <article>
      <nuxt-content :document="policy" />
    </article>
</template>

<script>
export default {
  async asyncData({ $content, params }) {
    const policy = await $content('privacy', params.slug).fetch()
    return { policy }
  }
}
</script>

但我不想从MD生成动态页面,也不想在路径中使用段塞。

我想获取policy.md的内容,并将它们插入到privacy.vue中--但我不知道如何实现。

我试过的

使用上面的方法是行不通的,但我觉得应该这样做。

console.log(policy)返回[object] [OBJECT]

& console.log(policy.title)返回undefined,这应该告诉我什么?(试图提高我在这里的调试技巧,lol)

为什么这在_slug.vue中起作用,而在page.vue中不起作用?

感觉好像我错过了一些上下文相关的知识:事情是如何工作的/正确的方法是什么。

EN

回答 1

Stack Overflow用户

发布于 2022-09-09 11:31:24

好的,在点击submit之前,我解决了自己的问题,将其添加到静态页面模板中:

代码语言:javascript
复制
<div v-for="policy in policy" :key="policy.title">

为什么要这么做?

这是因为asyncData事先不知道将获取多少项,并创建一个数组->,因此当policy.title不在数组的位置X处时,policy.title是未定义的(我猜,v-for给了我们?)。

我认为给出一个文件的路径而不是一个dir,比如:

代码语言:javascript
复制
const policy = await $content('privacy/policy.md', params.slug).fetch()

会清楚地表明这是一个单一的项目,但当我尝试之前的时候,这并不适用于我。这是如何工作的呢?

我觉得这可能不是解决问题的好办法。我的意思是,I知道在这个dir中只有一个文件,但是是的,必须有更合适的方法来做到这一点吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73661291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档