从不同位置ExpressJs:Node提供图像和js

时间:2017-01-17 11:21:48

标签: node.js express static-content

我使用以下代码来提供静态文件(js,images,css):

app.use(express.static(path.join(__dirname, 'public')));

但是现在图像已经移动到项目中的某个不同位置,即public目录之外(比方说。images)。

那么如何区分图像和js,css文件并从不同的位置提供它们呢?

修改

我想我必须阅读请求标头然后决定将请求路由到何处。但对我来说看起来有点脏。

2 个答案:

答案 0 :(得分:3)

尝试使用两个不同的端点:

import express from "express";
import {join} from 'path';

    const app = express();    


    const publicPath = express.static(join(__dirname, '../public/'));
    const publicImages = express.static(join(__dirname, '../images/'));

    app.use('/public', publicPath);
    app.use('/images', publicImages);


    app.listen(3400, function() {
      console.log("Express server listening on port 3400");  
    });

然后你就像这样使用它:http://localhost:3400/images/http://localhost:3400/public/

答案 1 :(得分:0)

在这种情况下,您只需要再添加一个静态文件配置

app.use(express.static(path.join(__dirname, 'images')));

它将作为

  

http://example.com/files-from-images-folder