Traduci questa pagina

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. For more information on the options argument, see 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.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

Note

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.

To create a virtual path prefix (where the path does not actually exist in the file system) for files that are served by the express.static function, specify a mount path for the static directory, as shown below:

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.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

Tuttavia, 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:

index.cjs
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.