Как минимизировать HTML, чтобы уменьшить имена CSS, FontAwesome и Bootstrap?

У меня есть Django-сайт, который отображает таблицу с данными. Он использует FontAwesome и Bootstrap для стилизации - что приводит к некоторому длинному HTML (стандартная страница занимает 136k).

Эг Некоторые TD содержат стрелку, использующую FA, и стиль для ее поворота, например

<i class="fa-solid fa-arrow-down fa-lg fa-rotate-by" style=--fa-rotate-angle:282deg></i>

Есть ли способ минифицировать или каким-то образом уменьшить размер имени?

Я читал о минификаторах webpack и gulp, но не могу найти ничего, что упоминало бы об использовании сторонних активов, таких как FA и BS, и о том, как можно уменьшить их размер. Кроме того, кажется, что они в некоторой степени ориентированы на клиентские фреймворки, а не на серверные, каковым является мой

  • Путем минификации HTML

     - pip install htmlmin
     - MIDDLEWARE = ['path.to.minify_middleware.Minify',]
    

from htmlmin.minify import html_minify #import minify

класс Minify:

def __init__(self, get_response):
    self.get_response =get_response

def __call__(self, request):
    response = self.get_response(request)
    if "text/html" in response.get('Content-Type', ''):
        response.content = html_minify(response.content.decode('utf-8'))
    return response

   

Альтернативный вариант - HTTP-сжатие, если целью является не обфусцирование вашего кода на стороне браузера, а уменьшение потребляемой полосы пропускания. Django поставляется с gzip middleware, или есть django-compression-middleware., который поддерживает другие методы сжатия.

Я верю, но не измерял, что HTTP-сжатие сэкономит больше полосы пропускания, чем минификация. Кроме того, его можно установить и забыть. Конечно, вы можете сделать и то, и другое.

Вернуться на верх