Как минимизировать 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-сжатие сэкономит больше полосы пропускания, чем минификация. Кроме того, его можно установить и забыть. Конечно, вы можете сделать и то, и другое.