服务静态内容与子域的快递?

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

app.use(serveStatic('docs/public', {'index': ['index.html', 'index.htm']})) 

提供我的docs/public目录的内容。 这很好,但它被用于我的应用程序的根,所以我不再看到默认的快速索引页面。

我想看到静态HTML(我目前看到我的索引)作为一个子域名,例如blog.mydomain.com。 或者至less是mydomain.com/blog。 如何将静态内容提供给子域?

注意:静态文件名和文件夹不能改变,因为我的./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/那么我没有得到我的静态内容,仍然是原来的快递指数。 事实上,如果我删除子域代码nd运行应用程序,导航到文档子域我仍然得到相同的结果。

我也尝试使用子域模块:

 app.use(subdomain('docs', serveStatic('docs/public', {'index': ['index.html', 'index.htm']}))); 

但是,这与上面的结果相同(不提供任何静态内容)。

那么如何提供我目前在子域上提供的静态内容呢?

@GeorgeEdwards在你的示例代码中,你已经在子域中间件之前调用了静态中间件。 顺序是重要的…它应该是这样的:

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

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