Как отображать метаданные Dynami c в html meta в следующем js из api? - PullRequest
0 голосов
/ 01 августа 2020

Я новичок в Next JS. Я получаю метаданные сообщения из API в методе Next JS getServerSideProps() и отображаю его в метатегах HTML.

Он отлично работает на localhost, но когда я загружаю код на сервер Heroku, я не получаю эти метаданные из API. Я не могу понять, почему он не работает на сервере.

Вот пример кода Next JS.

import React from 'react';
import { shape } from 'prop-types';
import Head from 'next/head';

import { httpGet } from '#utils/https';
import API_URLS from '#routes/api_urls';
import Watch from '#views/Watch';

// This gets called on every request
export async function getServerSideProps() {
  let url = API_URLS.POST.GET_POST_BY_SLUG;

  url = url.replace(/#POST_SLUG#/g, 'string-3');

  const post_data = await httpGet(url, {
    trace_name: 'get_post_by_slug',
  }).then(
    (res) => {
      return res || {};
    },
    (err) => {}
  );

  return { props: post_data || {} };
}

const WatchPage = (props) => {
  const { data } = props;
  console.log(data);
  return (
    <>
      <Head>
        <title>Watch Page</title>

        <meta name="description" content={data.metaDescription || ''} />
        <meta name="keywords" content={data.metaKeywords || ''} />
        <meta name="author" content={data.metaAuthor || ''} />
      </Head>
      <Watch />
    </>
  );
};

/**
 * Define component props
 */
WatchPage.propTypes = {
  data: shape({}),
};

export default WatchPage;

Вот ответ сервера localhost в консоли:

введите описание изображения здесь

Почему я не получаю метаданные из API и не отображаю их в метаданных HTML на реальном сервере?

...