Я создал сайт с помощью responseJs, nodeJs (экспресс-сервер).Клиенты довольны и так далее, но ... есть проблема, которая воспроизводима несколькими клиентами (я не могу воспроизвести ее).Кажется, эта проблема возникает только на устройствах iPhone (браузер Safari).После входа клиента в систему отображается пустая страница (поэтому css загружен неправильно).Сообщение об ошибке: Не удалось выполнить синтаксический анализ таблицы стилей в ..., поскольку в строгом режиме не допускаются типы MIME, не относящиеся к CSS.
Факты:
- После обновления страницывсе в порядке, css загружается без ошибок
- При использовании приватного режима браузера - все в порядке
- Тип содержимого ответа - "text / css; charset ="UTF-8 "
- Css добавляется в тег заголовка html следующим образом:
<link href="/static/css/main.b68c3443.css" rel="stylesheet">
- User-agent: Mozilla / 5.0 (iPhone; CPU iPhone OS 12_1_2 likeMac OS X) AppleWebKit / 605.1.15 (KHTML, как Gecko) Версия / 12.0 Mobile / 15E148 Safari / 604.1
- Если клиент очистил кеш браузера - все в порядке несколько раз
Рабочий процесс:
- клиент вводит учетные данные на странице входа в систему
- перенаправляет на страницу загрузки (должен быть загружен файл CSS), здесь размещено приложение реакции.путь: / логин
- реакция приложения перенаправляет на домашнюю страницу (страница не перезагружается), путь: / home
Запрос информации:
"request": {
"method": "GET",
"url": "<domain here>/static/css/main.b68c3443.css",
"httpVersion": "HTTP/1.1",
"headers": [
{
"name": "Accept",
"value": "text/css,*/*;q=0.1"
},
{
"name": "Referer",
"value": "https://<domain here>/login"
},
{
"name": "DNT",
"value": "1"
},
{
"name": "Host",
"value": "<domain here>"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1"
},
{
"name": "Accept-Language",
"value": "da-dk"
},
{
"name": "Accept-Encoding",
"value": "br, gzip, deflate"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"queryString": [],
"headersSize": 589,
"bodySize": 0
}
Информация об ответе:
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "Content-Type",
"value": "text/css; charset=UTF-8"
},
{
"name": "Accept-Ranges",
"value": "bytes"
},
{
"name": "Pragma",
"value": "no-cache"
},
{
"name": "Expires",
"value": "-1"
},
{
"name": "Transfer-Encoding",
"value": "Identity"
},
{
"name": "Cache-Control",
"value": "private, max-age=0, no-cache, no-store, must-revalidate"
},
{
"name": "Date",
"value": "Fri, 25 Jan 2019 11:16:01 GMT"
},
{
"name": "Access-Control-Allow-Credentials",
"value": "true"
},
{
"name": "Connection",
"value": "keep-alive"
},
{
"name": "ETag",
"value": "ef9275a5-7313-4124-b4f9-aac59d8d35bd"
},
{
"name": "Vary",
"value": "*"
},
{
"name": "Last-Modified",
"value": "Fri, 25 Jan 2019 08:16:41 GMT"
},
{
"name": "X-Powered-By",
"value": "Express"
},
{
"name": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains"
}
],
"content": {
"size": 58191,
"compression": 0,
"mimeType": "text/css",
"text": "@font-face{ <css content> /*# sourceMappingURL=main.b68c3443.css.map*/"
},
"redirectURL": "",
"headersSize": 498,
"bodySize": 58191,
"_transferSize": 58689
},
"cache": {},
"_fetchType": "Network Load"
}
Я думал, что это как-то связано с кэшированием в браузере, поэтому я попытался отключить кэширование только для устройств iPhone, но безуспешно.Это очень сложно отладить, потому что я не могу воспроизвести на своих тестовых iPhone.Что я еще не пробовал - удалить Accept-Ranges из заголовков ответов.Может быть, этот заголовок может быть причиной проблемы?Есть ли у вас какие-либо идеи ?Идея добавить стили к встроенной html-странице - очень уродливое решение ...