Firebase CLI: "Настроить как одностраничное приложение (переписать все URL в /index.html)"
3 ответа
Эта опция просто устанавливает флаг в firebase.json
файл для перенаправления всех URL на /index.html
,
"rewrites": [ {
"source": "**",
"destination": "/index.html"
} ]
См. Документацию Firebase Hosting для получения дополнительной информации.
Полный пример:
{
"hosting": {
"public": ".",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
Если вы установите для него значение "да", тогда все недопустимые URL-адреса, например www.example.com/some-invalid-url
будет перенаправлен на index.html
вашего сайта, что хорошо. Вы также можете настроить его на свой собственный404.html
.
firebase.json
{
"hosting": {
"public": "pubic",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
],
"cleanUrls": true
}
}
Бонус: установите cleanUrls
к true
удалять .html
расширения из ваших развернутых URL-адресов веб-сайтов, иначе все URL-адреса без .html
перенаправит на index.html
.
Как примечание: если вы хотите иметь рендеринг на стороне сервера (SSR), введите No и настройте rewrites
следующим образом:
"rewrites": [
{
"function": "angularUniversalFunction",
"source": "**"
}
]
В конце концов, что бы вы ни выбрали, вы всегда можете изменить это в файле firebase.json.
Официальное объяснение Firebase:
Мы использовали этот вариант в прошлом году (Q1 и Q2), но, похоже, он ничего не сделал, но в настоящее время, когда мы его применяем, определенно все работает совсем по-другому. Полное официальное объяснение того, что он делает, приведено здесь:
https://firebase.google.com/docs/hosting/url-redirects-rewrites
В следующем разделе этой же страницы есть даже некоторая полезная информация об использовании заголовков.