Как настроить кодировку статических файлов в 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 должен отображаться правильно, хотя.

Другие вопросы по тегам