На Gatsby CMS, как я могу установить страницу о в качестве страницы индекса - PullRequest
0 голосов
/ 01 октября 2018

Привет, я установил gatsby cms startter с помощью netlify, этот проект шел с запущенным шаблоном под названием kaldi, который имеет основной пост и страницы, легко создавать поля и создавать данные grapql, но я путаю способ работы маршрутаНапример, я не могу найти способ поместить страницу abot в качестве индексной страницы

этой индексной страницы, которая пришла с информацией о данных из полей сообщения

import React from 'react'
import PropTypes from 'prop-types'
import { Link, graphql } from 'gatsby'
import Layout from '../components/Layout'

export default class IndexPage extends React.Component {
  render() {
    const { data } = this.props
    const { edges: posts } = data.allMarkdownRemark

    return (
      <Layout>
        <section className="section">
          <div className="container">
            <div className="content">
              <h1 className="has-text-weight-bold is-size-2">Latest Stories</h1>
            </div>
            {posts
              .map(({ node: post }) => (
                <div
                  className="content"
                  style={{ border: '1px solid #eaecee', padding: '2em 4em' }}
                  key={post.id}
                >
                  <p>
                    <Link className="has-text-primary" to={post.fields.slug}>
                      {post.frontmatter.title}
                    </Link>
                    <span> &bull; </span>
                    <small>{post.frontmatter.date}</small>
                  </p>
                  <p>
                    {post.excerpt}
                    <br />
                    <br />
                    <Link className="button is-small" to={post.fields.slug}>
                      Keep Reading →
                    </Link>
                  </p>
                </div>
              ))}
          </div>
        </section>
      </Layout>
    )
  }
}

IndexPage.propTypes = {
  data: PropTypes.shape({
    allMarkdownRemark: PropTypes.shape({
      edges: PropTypes.array,
    }),
  }),
}

export const pageQuery = graphql`
  query IndexQuery {
    allMarkdownRemark(
      sort: { order: DESC, fields: [frontmatter___date] },
      filter: { frontmatter: { templateKey: { eq: "blog-post" } }}
    ) {
      edges {
        node {
          excerpt(pruneLength: 400)
          id
          fields {
            slug
          }
          frontmatter {
            title
            templateKey
            date(formatString: "MMMM DD, YYYY")
          }
        }
      }
    }
  }
`

Я изменил фильтр так, чтобы он ссылался на страницу с информацией, и теперь я получаю все данные о полях, но в менеджере контента netlify нет страницы предварительного просмотра

есть идеи?

1 Ответ

0 голосов
/ 01 октября 2018

Гэтсби, по умолчанию, сгенерирует путь на основе имени файла.Поэтому, если у вас есть файл pages/index.js, он сгенерирует файл с именем public/index.html, который обычно будет служить индексом корневого каталога.

Чтобы изменить эту страницу, у вас есть несколько вариантов.

  1. Сконфигурируйте свой сервер, чтобы он служил public/about.html в качестве индекса корневого каталога, хотя это необычно и, вероятно, будет трудно отладить позже.
  2. Замените pages/index.js содержимымВаш pages/about.js файл.
  3. Экспорт компонента верхнего уровня из pages/about.js из pages/index.js в качестве значения по умолчанию
...