2016-09-19 2 views

Antwort

1

Der einfachste Weg wäre die Umwandlung von Dateilisten von nginx. Sie können dies tun, indem Sie nginx-Ausgabeauflistungen als XML erstellen und sie dann mit XSLT umwandeln. Built-in-Modul ngx_http_autoindex_module wird das ehemalige und in der Regel dynamische Modul ngx_http_xslt_filter_module (aka ngx_http_xslt_module) machen tun letzteres.

Zuerst das Modul in nginx.conf lädt bei Bedarf:

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

Dann in Ihren sites-available/website.com, einen Ort hinzufügen, die den XML-Index mit stlylesheet gal.xslt und übergeben Sie einen den Namen des Ordners nginx zu verwandeln erzählt als ein Parameter

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

Schließlich schaffen gal.xslt in /etc/nginx, der sagt,

<?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> 

nun einige Bilder in /var/www/html/gal/foo setzen, starten Sie nginx, navigieren Sie zu website.com/gal/foo und Sie werden eine einfache, aber brauchbar und ansprechende Fotogalerie sehen.

+0

Das ist einfach unglaublich! Vielen Dank. – gerasalus

Verwandte Themen