[PYTHON] Envoyer du CSS compressé à Gzip avec Flask

Je voulais améliorer le problème que bootstrap.min.css était lent à charger, alors je me suis demandé comment je pouvais envoyer des css avec gzip ... J'ai enquêté et j'en ai pris note.

Faire une vue

Pour le moment, créons une nouvelle vue. Cette fois, nous enverrons une version compressée Gzip de bootstrap.min.css, donc créez un URI avec le nom / bootstrap.gz.css.

@app.route("/bootstrap.gz.css")

Compression Gzip

Chargez ensuite le fichier CSS compressé par Gzip. (Il est probablement possible de lire un fichier CSS normal et de le compresser avec le module gzip)

fp = open("static/css/bootstrap.min.css.gz")
content = fp.read()
fp.close()

Ajouter un peu à l'en-tête

Ce n'est pas bon, alors ajoutons quelques efforts à l'en-tête. Puisque nous compressons avec GZIP cette fois, ajoutez des informations à l'en-tête Content-Encoding.

res = make_response(content)
res.headers["Content-Type"] = "text/css"
res.headers["Content-Encoding"] = "gzip"

Les rassembler donne le code suivant. Cette fois, j'ai envoyé une version compressée de CSS, mais je pense que vous pouvez faire la même chose avec Javascript et des images ...!

@view.route("/bootstrap.gz.css")
def Bootstrap():
    fp = open("static/css/bootstrap.min.css.gz")
    content = fp.read()
    fp.close()

    res = make_response(content)
    res.headers["Content-Type"] = "text/css"
    res.headers["Content-Encoding"] = "gzip"

    return res

Veuillez vous y référer!

Recommended Posts

Envoyer du CSS compressé à Gzip avec Flask
Envoyer msgpack avec ajax à l'environnement flask (werkzeug)
Lorsque vous souhaitez envoyer un objet avec des requêtes à l'aide de flask
Envoyer des données à l'API DRF avec Vue.js
Comment télécharger avec Heroku, Flask, Python, Git (4)
Envoyer un message à LINE avec Python (LINE Notify)
Comment envoyer un message à LINE avec curl
Exemple de notification Slack avec python lambda
Flux pour terminer l'authentification Slack avec Flask (Python)
Je veux faire la transition avec un bouton sur le ballon
Comment télécharger avec Heroku, Flask, Python, Git (Partie 3)
Journal de sortie vers la console avec Flask + Nginx sur Docker
Essayez de créer une API RESTful avec MVC à l'aide de Flask 1.0.2
Comment télécharger avec Heroku, Flask, Python, Git (Partie 1)
termux × AWS Envoyez des informations de localisation de smartphone à AWS avec l'IoT
Comment télécharger avec Heroku, Flask, Python, Git (Partie 2)
Convertir 202003 en 2020-03 avec les pandas
Sérialisation avec cPickle, gzip
Flacon facile à utiliser
Envoyer des e-mails avec Django
Restriction IP avec Flask
Envoyer des e-mails par Python
Bonjour le monde sur flacon
Programmation avec Python Flask
[Avec diagramme d'image] Nginx + gunicorn + Flask converti en Docker [Partie 2]
Comment déployer une application Web créée avec Flask sur Heroku
Comment créer un BOT Cisco Webex Teams à l'aide de Flask
Comment installer NPI + envoyer un message à la ligne avec python
J'ai essayé différentes méthodes pour envoyer du courrier japonais avec Python
Comprendre comment utiliser Jinja2 rend le développement avec Flask plus intelligent
De la construction de l'environnement au déploiement pour flask + Heroku avec Docker
[Avec diagramme d'image] Nginx + gunicorn + Flask converti en Docker [Partie 1]
Envoyer des notifications push aux applications iOS avec Python2 (avec un exemple de code)
Jusqu'à ce que l'API créée par Flask + MySQL soit convertie en Docker