Как работать с динамическими c ссылками на хостинге Firebase? - PullRequest
0 голосов
/ 26 января 2020

Я использовал хостинг Firebase для размещения своего сайта. Недавно я реализовал концептуальную концепцию, веб-сайт обычно работает с индексом. html & style. js only.

Информация о функциональных возможностях: один файл HTML + JS, используемый для размещения всего небольшого веб-сайта. Я могу изменять содержание тела html с помощью запросов javascript. Но проблема с кнопкой перезагрузки в браузере. Например, если я нажму кнопку меню «о», то функция JS получит данные о бэкэнде и о них. Показать URL будет https://some.domain/about.

Теперь Если я обновлю sh страницу,

  1. По умолчанию она будет go до 404.
  2. Я использовал перенаправление ниже firebase.json , Но в результате получается https://some.domain вместо https://some.domain/about с правильной страницей содержимого, аналогичной показанной при нажатии кнопки about.

Коды:

  1. Изменение URL вручную с помощью history.pushState(null, null, / about );
  2. Перенаправление firebase.json

    "redirects": [{"source": "/ about", "destination": "/", "type": 301}]

Я хочу сохранить функциональность Dynami c в то же время Я хочу сохранить указанный c URL в адресной строке с контентом для этой спецификации c url.

Как мне это сделать?

1 Ответ

2 голосов
/ 26 января 2020

использовать перезаписывает :

Когда браузер пытается открыть указанный исходный URL-адрес, ему будет передано содержимое файла по целевому URL-адресу.

"hosting": {
  // ...

  // Add the "rewrites" attribute within "hosting"
  "rewrites": [ {
    // Serves index.html for requests to files or directories that do not exist
    "source": "**",
    "destination": "/index.html"
  }, {
    // Serves index.html for requests to both "/foo" and "/foo/**"
    // Using "/foo/**" only matches paths like "/foo/xyz", but not "/foo"
    "source": "/foo{,/**}",
    "destination": "/index.html"
  }, {
    // Excludes specified pathways from rewrites
    "source": "!/@(js|css)/**",
    "destination": "/index.html"
  } ]
}
...