Я развернул приложение Firebase, состоящее из одной функции и кучи статических файлов в общем каталоге, из которых состоит сам сайт.
firebase.json
содержит одно правило перенаправления и одно правило перезаписи.
Как ни странно, при локальном тестировании функции я вообще не вижу никаких проблем, статический index.html
файл загружается с соответствующими файлами css и js, хранящимися в папке /assets
.
Но когда я развертываю приложение на хостинге Firebase, все файлы в этом конкретном каталоге (/assets) возвращают HTTP/2 500
с некоторыми дополнительными заголовками, такими как location
, указывающими на самих себя.
Я не вижу журналы для чего-либо еще, кроме функций (которые даже не вызываются), поэтому я не могу решить эту проблему.
Есть идеи?
Полный HTTP-ответ при curl
-редактировании одного из css-файлов выглядит следующим образом:
< HTTP/2 500
< server: nginx
< content-type: text/html; charset=utf-8
< location: /assets/css/bootstrap.min.css
< etag: W/"2c-Fy5LxM6AQUiWl2dvoMk+v0DAv6s"
< fastly-restarts: 1
< accept-ranges: bytes
< date: Mon, 08 Apr 2019 10:31:34 GMT
< via: 1.1 varnish
< x-served-by: cache-lcy19235-LCY
< x-cache: MISS
< x-cache-hits: 0
< x-timer: S1554719494.752454,VS0,VE252
< vary: x-fh-requested-host
< content-length: 44
<
<!doctype html>
<html>
<head>
* Connection #0 to host [REDACTED] left intact
<title>U
Это полный ответ, который усекается после U
.
Позвольте мне ответить самому себе, так как я нашел, в чем проблема, но я НИЧЕГО не нашел в Интернете по этой конкретной проблеме.
Из-за отсутствия у меня опыта работы с Firebase я понял, что мое правило перенаправления нарушало работу приложения, поскольку оно перенаправляло все файлы под /assets
на себя, но вместо того, чтобы получить цикл перенаправления, я получил это странное поведение.
Опять же, локально работало без проблем, но при развертывании появлялась ошибка HTTP/2 500
.
Это было правилом, на всякий случай, это поможет кому-то в будущем решить эту конкретную проблему:
"redirects":[
{
"source": "/assets/:path*",
"destination": "/assets/:path",
}
]