Traduzir esta página

Servindo arquivos estáticos no Express

Para servir arquivos estáticos como imagens, arquivos CSS e arquivos JavaScript, use a função express.static middleware embutida no Express.

A assinatura da função é:

express.static(root, [options]);

O argumento root especifica o diretório raiz do qual se destinam os assets estáticos. Para obter mais informações sobre o argumento options, consulte express.static.

Por exemplo, use o seguinte código para servir imagens, arquivos CSS e arquivos JavaScript em um diretório chamado public:

app.use(express.static('public'));

Agora, você pode carregar os arquivos que estão no diretório 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

Expresso procura os arquivos relativos ao diretório estático, então o nome do diretório estático não faz parte do URL.

Para usar vários diretórios de ativos estáticos, chame a função express.static middleware várias vezes:

app.use(express.static('public'));
app.use(express.static('files'));

Expresso olha os arquivos na ordem em que você definiu os diretórios estáticos com a função de middleware express.static.

Para melhores resultados, use um proxy reverso cache para melhorar o desempenho do servindo ativos estáticos.

Para criar um prefixo de caminho virtual (onde o caminho não existe realmente no sistema de arquivos) para arquivos que são servidos pelo express. função tática, especifique um caminho de montagem para o diretório estático, conforme mostrado abaixo:

app.use('/static', express.static('public'));

Agora, você pode carregar os arquivos que estão no diretório public a partir do prefixo de caminho /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

No entanto, o caminho que você fornece para a função express.static é relativo ao diretório de onde você inicia seu processo node. Se você executar o aplicativo expresso a partir de outro diretório, é mais seguro usar o caminho absoluto do diretório que você deseja servir:

const path = require('path');
app.use('/static', express.static(path.join(__dirname, 'public')));

Para mais detalhes sobre a função serve-static e suas opções, consulte serve-static.