我有一个快速应用程序,它只是默认的空白应用程序。然后我添加了这一行:
app.use(serveStatic('docs/public', {'index': ['index.html', 'index.htm']}))
提供我docs/public
目录的内容。这很好用,但是它被提供给我的应用程序的根目录,所以我不再看到默认的快速索引页面。
我希望看到静态html(我目前将其视为我的索引)作为子域,例如blog.mydomain.com。或者至少作为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/
那么我没有得到我的静态内容,仍然是原始的快递索引。事实上,如果我删除子域代码并运行应用程序,导航他的文档子域我仍然得到相同的结果。
我也尝试过使用子域模块:
app.use(subdomain('docs', serveStatic('docs/public', {'index': ['index.html', 'index.htm']})));
然而,这与上面的结果相同(不提供任何静态内容)。
那么我如何提供我目前在子域上提供的静态内容?
答案 0 :(得分:1)
@GeorgeEdwards在您的示例代码中,您在子域中间件之前调用了静态中间件。订单很重要......它应该是这样的:
app.use(subdomain('docs', express.static('docs/public')));
这意味着具有docs
子域的任何请求都将由快速静态中间件处理。