2016-09-19 3 views

Répondre

1

La manière la plus simple serait de transformer les listes de fichiers de nginx. Vous pouvez le faire en faisant des listes de sortie nginx en XML et ensuite les transformer en utilisant XSLT. Built-in module ngx_http_autoindex_module fera l'ancien module et généralement dynamique ngx_http_xslt_filter_module (aka ngx_http_xslt_module) fera le dernier.

Tout d'abord, charger le module nginx.conf si nécessaire:

load_module "/usr/lib/nginx/modules/ngx_http_xslt_filter_module.so"; 

Ensuite, dans votre sites-available/website.com, ajouter un emplacement qui indique nginx pour transformer l'index XML à l'aide stlylesheet gal.xslt et passer un nom du dossier que un paramètre.

location ~ /gal/([A-z]+)/$ { 
    autoindex on; 
    autoindex_format xml; 
    xslt_string_param title $1; 
    xslt_stylesheet gal.xslt; 
    try_files $uri/ =404; 
} 

Enfin, créer gal.xslt dans /etc/nginx qui dit,

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html" encoding="utf-8" indent="yes" /> 
<xsl:template match="/"> 
    <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text> 
    <html> 
    <head> 
    <title><xsl:value-of select="$title" /></title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
    <style> 
    img { 
      display: block; 
      max-width: 20cm; 
      max-height: 20cm; 
      margin: 2mm; 
      vertical-align: bottom; 
     } 
    @media all and (max-width: 20.4cm) { 
     img { 
      max-width: calc(100% - 4mm); 
     } 
    } 
    body { 
      margin: 0; 
    } 
    </style> 
    </head> 
    <body> 
    <xsl:for-each select="list/file"> 
     <img src="{.}" alt="{.}"/> 
    </xsl:for-each> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 

Maintenant mettre des images en /var/www/html/gal/foo, redémarrez nginx, accédez à website.com/gal/foo et vous verrez une galerie d'image simple mais utilisable et réactif.

+0

C'est purement incroyable! Je vous remercie. – gerasalus