服务静态内容与子域的快递?
我有一个快速的应用程序,这只是默认的空白应用程序。 然后我添加了这一行:
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静态中间件来处理。