Как использовать карту сайта на хостинге firebase с реагирующим приложением

Я развернул веб-приложение reactjs на своем хостинге firebase. Я добавил файл sitemap.xml в общую папку. Я отредактировал firebase.json, чтобы перенаправить источник на sitemap.xml:

"redirects": [
      {
        "source": "/sitemap",
        "destination": "/sitemap.xml",
        "type": 302
      }
    ],
"rewrites": [
  {
    "source": "/*",
    "destination": "/index.html"
  }
]

Но когда я перехожу к https://blah blah.com/sitemap, он всегда возвращает index.html. Я пытался добавить его и к перезаписи, но кажется, что он всегда возвращает index.html.

Я также использую React Router 4 для маршрутизации, возможно, это влияет на это.

<Switch>
        <Route component={Login} exact path="/login" />
        <Route component={Home} path="/home" />
        <Route component={About} path="/about" />
        <Route component={Carousel} path="/carousel/:galleryRef/:ref" />
        <Route component={RelayEditPage} path="/edit/:galleryRef" />
        <Route path="/" render={() => <Redirect to="/home" />} />
      </Switch>

Как я могу добавить карту сайта в домен хостинга? Если я добавлю компонент Redirect внутрь Switch, он сработает, но тогда я не смогу установить карту сайта для консоли поиска Google из-за перенаправления.


person parohy    schedule 15.06.2018    source источник
comment
Попробуйте удалить любую ссылку на sitemap.xml из firebase.json. Поскольку у вас есть статический файл, он должен быть возвращен на основе приоритетов хостинга.   -  person abraham    schedule 17.06.2018
comment
@abraham Спасибо за ваш ответ. Я удалил все ссылки, но когда я выполняю domain.com/sitemap.xml, он всегда возвращается к / и загружает домашнюю страницу.   -  person parohy    schedule 20.06.2018
comment
Однако, если я запускаю это на локальном хосте, это работает. Только хостинг firebase всегда перенаправляет меня на ‘/’   -  person parohy    schedule 27.06.2018
comment
Он отлично работает для меня в моем эксперименте. Пример и Источник.   -  person abraham    schedule 27.06.2018
comment
@abraham, можете ли вы предоставить фрагмент вашей части хостинга firebase.json?   -  person parohy    schedule 27.06.2018
comment
Весь источник связан в моем предыдущем комментарии.   -  person abraham    schedule 27.06.2018
comment
@abraham Спасибо. :) Я не понимаю, у меня почти такие же настройки, за исключением того, что у меня есть приложение React. Это не работает, если я помещаю sitemap.xml в путь, который отображает только панель навигации и нижний колонтитул, поскольку эти два находятся за пределами Switch, отображающих страницы.   -  person parohy    schedule 28.06.2018


Ответы (3)


Это сработало для меня:

"redirects": [
  {
    "source": "/sitemap",
    "destination": "/sitemap.xml",
    "type": 301
  },
  {
    "source": "/sitemap/**",
    "destination": "/sitemap.xml",
    "type": 302
  }
] 
person John Anisere    schedule 18.03.2019

Попробуйте удалить файл index.html. Я создал веб-сайт, на котором я удалил index.html из общей папки и вместо этого использовал index.js в папке функций.

person Ayush Gupta    schedule 12.07.2018

У меня была такая же проблема, как у вас. Использование следующей конфигурации сделало файлы в моей общей папке (включая карту сайта) доступными в Интернете после развертывания:

"rewrites": [
  {
    "source": "/",
    "destination": "/index.html"
  },
  {
    "source": "/sitemap",
    "destination": "/sitemap.xml"
  }
]
person adri.de    schedule 19.01.2019