Express.js仅在特定网址上提供静态文件夹

时间:2018-05-12 03:10:59

标签: node.js express

我有一个现有的快速应用程序,我用于API,但我也想提供一个带有HTML文件和一些图像/ css / js的文件夹。我可以将其设置为HTML页面,但是我会在/处这样做,而我只希望它在/manual处提供。这是我的简化代码,只有express.static,我的/路由,并且所有重定向都转移到/

const app = express();
app.use(express.static('manual'));

app.get('/', (req, res) => {
  res.status(403);
  res.send('Access denied.');
  return;
});

app.get('*', (req, res) => {
  res.redirect(301, '/');
  return;
});

目前发生了什么:转到mysite.com/manual重定向到mysite.com/,该index.htmlmanual文件夹中的mysite.com/manual提供。

我想要发生的事情index.html转到manual文件夹中的mysite.com/。转到Set wkbk1 = Workbooks("3rd Party.xlsm")会抛出403状态代码。

1 个答案:

答案 0 :(得分:0)

中间件/处理程序按您声明的顺序应用,因此您只需更改顺序

const app = express();

app.get('/', (req, res) => {
  res.status(403);
  res.send('Access denied.');
  return;
});

// adding a first parameter lets you apply the middleware to a route
app.use('/manual', express.static('manual'));

app.get('*', (req, res) => {
  res.redirect(301, '/');
  return;
});