Как обслуживать robots.txt и sitemap.xml в размещенной в firebase приложении create-реагировать с маршрутизатором реагировать - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь предоставить robots.txt и sitemap.xml в корне моего сайта, например, www.fakedomain.com/robots.txt.Моя установка, описанная ниже, кажется, работает на локальном хосте, но не на размещенном производстве.Размещенная продукция возвращает пустую страницу.

Использование хостинга firebase, create-реакции-app и response-router для обработки URL-адресов

Текущая настройка соответствия: Как мне обслуживать robots.txtна SPA с использованием React с хостингом Firebase?

Структура папки: public/robots.txt public/sitemap.xml

TopApp.js

import React, { Component } from 'react';
import {
  Switch,
  Route,
  Redirect,
} from 'react-router-dom';

import App from './App';

class TopApp extends Component {
  constructor(props) {
    super(props);

    this.state = {
    };

  }

  render() {

    return (
      <Switch>
        <Route exact path="/" render={() => (<Redirect to={"/app"}/>)}/>
        <Route path={"/app"} component={() => <App />} />
      </Switch>
    )

  }

}

export default (TopApp);

/ src / index.js

import React from 'react';
import ReactDOM from 'react-dom';
import {
  BrowserRouter,
} from 'react-router-dom';
import TopApp from './components/TopApp';
import registerServiceWorker from './registerServiceWorker';

ReactDOM.render(
    <BrowserRouter>
        <TopApp/>
    </BrowserRouter>,
    document.getElementById('root')
);

registerServiceWorker();

1 Ответ

0 голосов
/ 05 января 2019

Похоже, ваш публичный каталог Firebase не указывает на каталог react-create-app production /build.

Вы можете попробовать изменить публичную конфигурацию Firebase на:

"hosting": {
  "public": "build"
}

Или вы можете попробовать запустить процесс с нуля, но, следуя моим объяснениям и ключевым шагам создания и развертывания react-create-app в Firebase:

  1. Во-первых, вЧтобы иметь общедоступный ресурс (robots.txt, sitemap.xml и т. д.) в react-create-app, необходимо поместить ресурс в каталог /public.

    Вот что реагирует на создание приложения 'документы говорит:

    Если вы поместите файл в общую папку, он не будет обрабатываться Webpack.Вместо этого он будет скопирован в папку build без изменений.

  2. Чтобы создать приложение для работы, вы выполните npm run build или * 1032.*.Это создаст приложение в папку /build вместе с вашими файлами robots.txt и sitemap.xml.

  3. Следующим шагом будет инициализация Firebase с firebase init и выбор Firebase Hosting setup .

  4. Вот самая важная часть, и я думаю, что проблема заключается в .По умолчанию публичный каталог Firebase - /public.Но в нашем случае реакции-создания-приложения наши производственные файлы находятся в /build.Поэтому вам нужно вручную изменить его на /build.

  5. Позже Firebase спросит вас, хотите ли вы настроить приложение как одностраничное приложение.

    1. Введите y и нажмите ввод. Принимая эту опцию, позже вы сможете использовать response-router-dom для навигации по вашему приложению .
    2. В нем будет сказано, что файл build / index.html уже существует.Переписать?Нажмите N - потому что он у нас уже есть в activ-create-app.
  6. Последний шаг - развертывание проекта с firebase deploy.


Авторы Как развернуть создание реагирующего приложения на базе Firebase .

...