ExpressJs服务多个静态文件夹不起作用

时间:2015-09-30 13:04:57

标签: node.js express

我想构建我的公共文件夹,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <listener>
    <listener-class>
        example.ServletContextExample
    </listener-class>
  </listener>
</web-app>

如果请求以/ admin为前缀,那么我想提供后端文件夹,否则然后是前端文件夹 这就是我尝试过的事情

 - public
     -  frontend
     -  backend
     -  assets   # to serve common css, and js static files for backend/frontend

但是我无法从assets文件夹中获取静态文件,而是继续向我提供index.html。 什么是使其有效的正确方法?很多

2 个答案:

答案 0 :(得分:5)

如果我正确地理解了你的问题,我认为这样的事情就更有可能了。

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

答案 1 :(得分:0)

您可以这样做

app.get('/*', function(req, res) {
  if(req.path.indexOf('/admin/')!==-1) 
    res.sendFile(path.join(__dirname, 'public/admin', 'index.html'));
  }else {
    res.sendFile(path.join(__dirname, 'public/frontend', 'index.html'));
  }

});

您也可以类似地添加其他网址。