Archivos estáticos, comprimidos para mayor eficiencia. Actualmente, requiere Rust todas las noches.
En este ejemplo, utilizamos una macro para evaluar una ruta en tiempo de compilación, en relación con el archivo fuente. En modo de depuración, los archivos se cargarán en tiempo de ejecución. En el modo de lanzamiento, los archivos se incrustan (y se comprimen adecuadamente) en el binario compilado.
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 ;
Todos los campos (excepto contents
) están deshabilitados de forma predeterminada, pero se pueden activar mediante el indicador de función correspondiente.
Consulte la documentación para conocer otras opciones, como realizar la compresión en tiempo de ejecución.
Existe soporte experimental para personalizar la compresión mediante un archivo de configuración. Si tuviera una imagen llamada some_image.png
, podría colocar lo siguiente en un nuevo archivo llamado some_image.minicdn
para ajustar el nivel de calidad de WebP.
webp_quality = 75.0
Están disponibles las siguientes opciones:
brotli_level
(1-11, predeterminado 9)brotli_buffer_size
(bytes, predeterminado 4096)brotli_large_window_size
(predeterminado 20)gzip_level
(1-9, predeterminado 9)webp_quality
(0-100 o "sin pérdidas", predeterminado 90) Con licencia bajo cualquiera de
a tu elección.
A menos que indique explícitamente lo contrario, cualquier contribución enviada intencionalmente para su inclusión en el trabajo, tal como se define en la licencia Apache-2.0, tendrá una licencia doble como se indicó anteriormente, sin términos ni condiciones adicionales.