Node.js 使用express向子域提供静态内容?

Node.js 使用express向子域提供静态内容?,node.js,express,server,subdomain,Node.js,Express,Server,Subdomain,我有一个express应用程序,它只是默认的空白应用程序。然后,我添加了一行: app.use(serveStatic('docs/public', {'index': ['index.html', 'index.htm']})) 提供我的文档/public目录的内容。这很好,但是它被服务于我的应用程序的根目录,所以我不再看到默认的express索引页面 我希望将静态html(我目前将其视为我的索引)视为子域,例如blog.mydomain.com。或者至少是mydomain.com/blog

我有一个express应用程序,它只是默认的空白应用程序。然后,我添加了一行:

app.use(serveStatic('docs/public', {'index': ['index.html', 'index.htm']}))
提供我的
文档/public
目录的内容。这很好,但是它被服务于我的应用程序的根目录,所以我不再看到默认的express索引页面

我希望将静态html(我目前将其视为我的索引)视为子域,例如blog.mydomain.com。或者至少是mydomain.com/blog。如何将静态内容提供给子域

注意:静态文件名和文件夹不能更改,因为my./docs目录是一个hexo项目,任何更改都会中断docs/public文件夹中静态内容的生成

我尝试使用
express subdomain
,因此我在app.js中添加了如下代码:

var router = express.Router();
router.use(serveStatic('docs/public', {'index': ['index.html', 'index.htm']}))

app.use(subdomain('docs', router));
然而,如果我运行它,我会在
http://localhost:3000/
(不是静态的),这是我想要的,但是如果我转到
http://docs.localhost:3000/
那么我就不会得到我的静态内容,仍然是原始的express索引。事实上,如果我删除子域代码并运行应用程序,导航到文档子域,我仍然会得到相同的结果

我还尝试使用子域模块:

app.use(subdomain('docs', serveStatic('docs/public', {'index': ['index.html', 'index.htm']})));
但是,这与上面的结果相同(不提供任何静态内容)


那么,如何为当前在子域上提供的静态内容提供服务呢?

@GeorgeEdwards在您的示例代码中,您在子域中间件之前调用了静态中间件。订单很重要。。。应该是这样的:

app.use(subdomain('docs', express.static('docs/public')));

这意味着带有
docs
子域的任何请求都将由express静态中间件处理。

您看过吗?@OmarDarwish是的,但我不知道如何使用它。查看我的问题更新。恐怕这一行仍然会得到相同的结果(docs.localhost:3000路由到与localhost:3000相同的页面-不是我的静态内容)。这是我的
app.js
文件的一部分