Я наблюдаю неожиданное поведение (по крайней мере, на мой взгляд) с конечными косыми чертами на хостинге Firebase. Я ожидаю, что Firebase будет обслуживать URL-адреса с косой чертой в конце (за исключением фактических файлов, находящихся в каталоге хостинга). Для этого я установил trailingSlash
в true
в firebase.json.
Это привело к:
example.com redirect to example.com/index.html/
example.com/js/script.js redirect to example.com/js/script.js/
example.com/images/image.png redirect to example.com/images/image.png/
Ожидаемое поведение:
example.com redirect to example.com/
example.com/js/script.js served as it is without any redirect
example.com/images/image.png served as it is without any redirect
Добавление завершающей косой черты к фактическим URL-адресам файлов заставляет браузер / сервер думать, что script.js
является каталогом, а не файлом, и приводит к ошибке 404. Добавление index.html в корень просто не изящно.
Ожидая, что cleanUrls
выполнит трюк, я установил cleanUrls
в true
вместе с trailingSlash
, и тут же сайт перешел в бесконечный цикл перенаправления и не загрузился. Как я могу запретить Firebase добавлять index.html в корень и завершающую косую черту для фактических js или изображений?
Редактировать:
По просьбе Фрэнка я использую firebase.json:
{
"firebase" : "example",
"public" : "public",
"cleanUrls" : false,
"trailingSlash" : true,
"ignore" : [ "firebase.json", "**/.*", "**/node_modules/**" ],
"rewrites": [{
"source" : "**",
"destination" : "/index.html"
}],
"headers": [{
"source" : "**/*.@(eot|otf|ttf|ttc|woff|font.css)",
"headers" : [{
"key" : "Access-Control-Allow-Origin",
"value" : "*"
}]
}, {
"source" : "**/*.@(jpg|jpeg|gif|png)",
"headers" : [{
"key" : "Cache-Control",
"value" : "max-age=600"
}]
}, {
"source" : "**/*.@(html|js)",
"headers" : [{
"key" : "Cache-Control",
"value" : "max-age=300"
}]
}]
}
P.S .: Я попытался установить trailingSlash
и cleanUrls
на true
, а также попытался установить эти true/false
по отдельности.