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.jpghttp://localhost:3000/css/style.csshttp://localhost:3000/js/app.jshttp://localhost:3000/images/bg.pnghttp://localhost:3000/hello.htmlExpresso 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.jpghttp://localhost:3000/static/css/style.csshttp://localhost:3000/static/js/app.jshttp://localhost:3000/static/images/bg.pnghttp://localhost:3000/static/hello.htmlNo 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.