Statische Dateien, aus Effizienzgründen komprimiert. Derzeit ist Rust jede Nacht erforderlich.
In diesem Beispiel verwenden wir ein Makro, um zur Kompilierungszeit einen Pfad relativ zur Quelldatei auszuwerten. Im Debug-Modus werden die Dateien zur Laufzeit geladen. Im Release-Modus werden die Dateien in die kompilierte Binärdatei eingebettet (und entsprechend komprimiert).
let files : MiniCdn = release_include_mini_cdn ! ( "./path/to/public/files/" ) ;
let html = files . get ( "index.html" ) . unwrap ( ) ;
// 32 byte digest of the file.
let _ = html . etag ;
// Last modified time as string, in UNIX seconds.
let _ = html . last_modified ;
// MIME type string.
let _ = html . mime ;
// Raw HTML bytes.
let _ = html . contents ;
// HTML compressed with Brotli, if it is more efficient.
let _ = html . contents_brotli ;
// HTML compressed with GZIP, if it is more efficient.
let _ = html . contents_gzip ;
let image = files . get ( "images/foo.png" ) . unwrap ( ) ;
// Raw PNG bytes.
let _ = image . contents ;
// WebP bytes (if WebP is more efficient).
let _ = image . contents_webp ;
Alle Felder (außer contents
) sind standardmäßig deaktiviert, können aber durch ein entsprechendes Feature-Flag eingeschaltet werden.
Überprüfen Sie die Dokumentation auf andere Optionen, z. B. die Komprimierung zur Laufzeit.
Es gibt experimentelle Unterstützung für die Anpassung der Komprimierung mithilfe einer Konfigurationsdatei. Wenn Sie ein Bild mit dem Namen some_image.png
hätten, könnten Sie Folgendes in eine neue Datei mit dem Namen some_image.minicdn
einfügen, um die WebP-Qualitätsstufe anzupassen.
webp_quality = 75.0
Folgende Optionen stehen zur Verfügung:
brotli_level
(1-11, Standard 9)brotli_buffer_size
(Bytes, Standard 4096)brotli_large_window_size
(Standard 20)gzip_level
(1-9, Standard 9)webp_quality
(0–100 oder „verlustfrei“, Standard 90) Lizenziert unter einem von beiden
nach Ihrer Wahl.
Sofern Sie nicht ausdrücklich etwas anderes angeben, unterliegt jeder Beitrag, der von Ihnen absichtlich zur Aufnahme in das Werk eingereicht wird, wie in der Apache-2.0-Lizenz definiert, einer Doppellizenz wie oben, ohne zusätzliche Bedingungen oder Konditionen.