Servire file statici in Express
Per servire file statici come immagini, file CSS e file JavaScript, utilizzare la funzione middleware integrata express.static in Express.
La firma della funzione è:
express.static(root, [options]);L’argomento root specifica la directory radice da cui servire le risorse statiche.
Per ulteriori informazioni sull’argomento options, vedere express.static.
Per esempio, utilizzare il seguente codice per servire immagini, file CSS e file JavaScript in una directory chiamata public:
app.use(express.static('public'));Ora, puoi caricare i file che sono nella directory public:
http://localhost:3000/images/kitten.jpghttp://localhost:3000/css/style.csshttp://localhost:3000/js/app.jshttp://localhost:3000/images/bg.pnghttp://localhost:3000/hello.htmlNote
Express cerca i file relativi alla directory statica, quindi il nome della directory statica non fa parte dell’URL.
Per utilizzare più directory di asset statici, chiama la funzione middleware express.static:
app.use(express.static('public'));app.use(express.static('files'));Express cerca i file nell’ordine in cui si impostano le directory statiche con la funzione middleware express.static.
Note
Per ottenere risultati ottimali, utilizza un proxy inverso cache per migliorare le prestazioni di che servono risorse statiche.
Per creare un prefisso di percorso virtuale (dove il percorso non esiste effettivamente nel file system) per i file serviti dal express. funzione tatic, specify a mount path per la directory statica, come mostrato di seguito:
app.use('/static', express.static('public'));Ora puoi caricare i file che sono nella directory public dal prefisso del percorso /static.
http://localhost:3000/static/images/kitten.jpghttp://localhost:3000/static/css/style.csshttp://localhost:3000/static/js/app.jshttp://localhost:3000/static/images/bg.pnghttp://localhost:3000/static/hello.htmlTuttavia, il percorso che fornisci alla funzione express.static è relativo alla directory da cui avvii il processo node. Se si esegue l’app express da un’altra directory, è più sicuro utilizzare il percorso assoluto della directory che si desidera servire:
const path = require('path');app.use('/static', express.static(path.join(__dirname, 'public')));Per maggiori dettagli sulla funzione serve-static e sulle sue opzioni, vedere serve-static.