Как настроить кодировку статических файлов в aiohttp?
Как я могу убедиться, что мои статические файлы, используемые во время разработки, используют utf-8?
У меня есть статический обработчик, например, так:
app.router.add_static('/static', MY_STATIC_DIR)
Но я заметил, что символы utf-8 отображаются в браузере искаженными во время разработки. Те же файлы хорошо отображаются при работе через nginx в производстве.
РЕДАКТИРОВАТЬ:
Данный контент находится в файле.js веб-пакета. Я протестировал обслуживание этого пакета с помощью nginx и узла, и проблема исчезла. Но для простоты разработки я бы хотел использовать aiohttp, а не ускорять второй процесс.
1 ответ
Кодировка контента определяется Content-Type
заголовок, который в свою очередь использует mimetypes.guess_type
для поиска типа на основе расширения файла.
Это ничего не делает с кодировкой текста. Выяснение кодировки простого текста - довольно дорогая процедура (необходимо обрабатывать чтение содержимого файла с помощью такого инструмента chardet
) и не на 100% стабильный (файл может содержать несколько кодировок).
PS
Поддержка статических файлов в aiohttp предназначена для обработки ресурсов, таких как изображения, а не простых для чтения человеком текстов. HTML должен отображаться правильно, хотя.