【问题标题】:Serve images and js from different locations ExpressJs: Node提供来自不同位置的图像和 js ExpressJs:节点
【发布时间】:2017-06-01 10:32:11
【问题描述】:

我正在使用以下代码来提供静态文件(js、图像、css):

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

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

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

编辑

我想我必须阅读请求标头,然后决定将请求路由到哪里。但我觉得有点脏。

【问题讨论】:

    标签: node.js express static-content


    【解决方案1】:

    尝试使用两个单独的端点:

    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/

    【讨论】:

      【解决方案2】:

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

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

      它将作为

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

      【讨论】:

      • 试过了,但现在我的 js 和 css 文件无法提供。链接也不对
      • 这个图片文件夹是否在“公共”文件夹中?
      • 如果你使用 app.use(express.static(path.join(__dirname, 'images')));您可以将文件添加到 /yourproject/images/* :)
      猜你喜欢
      • 1970-01-01
      • 2017-04-11
      • 2012-12-22
      • 1970-01-01
      • 2020-01-15
      • 2015-05-13
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      相关资源
      最近更新 更多