通过 slug 获取页面和页面数据。 Strapi 和 Nuxt

Posted

技术标签:

【中文标题】通过 slug 获取页面和页面数据。 Strapi 和 Nuxt【英文标题】:Get page and page data by slug. Strapi and Nuxt 【发布时间】:2020-08-17 08:39:23 【问题描述】:

我有 Strapi,还有 Nuxt 和 Apollo。

我使用动态查询获取数据,但无法将这些数据应用于 标题和元描述。

现在我得到一个这样的页面:

我对 product.gql 的查询

查询产品($slug: String) 产品(其中: slug:$slug ) 身份证 蛞蝓 名称 图片 提供者元数据 说明

我的一个产品页面 _slug.vue

<template>
        <div
          class="flex flex-wrap pb-16"
          v-for="product in products"
          :key="product.slug"
        >
          <div v-if="product.image" class="w-1/2 flex items-center justify-center">
            <cld-image
              :publicId="product.image.provider_metadata.public_id"
              
              crop="scale"
            />
          </div>
          <div class="w-1/2">
            <p class="font-bold uppercase text-2xl pb-4">
               product.category.name  « product.name »
            </p>
            <div
              class="pb-4"
              v-if="product.description"
              v-html="$md.render(product.description)"
            ></div>
          </div>
        </div>
      </section>
    </template>

    <script>
    import productQuery from '@/apollo/queries/product/product'
    export default 
      data() 
        return 
          products: ,
          api_url: process.env.API_URL
        
      ,
      apollo: 
        products: 
          prefetch: true,
          query: productQuery,
          variables() 
            let params = this.$route.params
            return 
              slug: params.slug
            
          
        
      ,
      head() 
        return 
          // title: this.product.meta_title,
        
      
    
    </script>

如何将此数据应用到 head() 中的输出?

【问题讨论】:

【参考方案1】:

您还没有在任何地方定义“meta_title”,因此数据根本不存在。 您需要向您的内容模型添加一个名为“meta_title”的简单文本字段,并将其添加到您的查询中,以便您可以定义它需要的内容。 那,或者你只是使用

head() 
        return 
          // title: this.product.name
        
      

【讨论】:

以上是关于通过 slug 获取页面和页面数据。 Strapi 和 Nuxt的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL / Strapi - 无法按字符串字段过滤

在 htaccess 中使用 rewriterule 的页面 slug

如何获取所有语言的 post slug?

Wordpress:如何在标签页面上获取标签的 slug

并非所有 graphql 查询数据都在 GatsbyJS 页面上呈现

如何从 getStaticProps 或 getStaticPaths 中的请求页面获取 slug?