【发布时间】:2018-04-16 23:47:10
【问题描述】:
我有两个 Angular 2 客户端应用程序,我想从我的环回后端提供服务。我已经能够从子目录 (www.mysite.com/subdirectory) 成功地为它们提供服务,但我正在尝试从子域 (www.subdomain.mysite.com) 为它们提供服务。
Loopback 似乎没有内置的方式来处理通过中间件或我能看到的任何其他地方的子域路由。所以我试图通过匹配在 middleware.json 文件中为final 设置的 url-not-found-handler 中的主机名来完成路由:
if (req.hostname.match(/subdomain1\./g)) {
console.log('requesting subdomain1 site')
res.sendFile(path.resolve() + '/dist/subdomain1/index.html')
} else if (req.hostname.match(/subdomain2\./g)) {
console.log('requesting subdomain2 site')
res.sendFile(path.resolve() + '/dist/subdomain/index.html')
} else {
next();
}
我还在 middleware.json 中设置了静态文件:
"files": {
"loopback#static": [
{
"name": "subdomain1",
"params": "dist/subdomain1"
},
{
"name": "subdomain2",
"params": "dist/subdomain2"
}
]
}
这似乎有效,因为它正确匹配并发送正确的 index.html 文件。通过在浏览器中检查,我知道它是正确的 index.html。
但由于某种原因,实际提供的 Angular 应用程序总是是 loopback#static 数组中的第一个。如果我首先有 subdomain2,那么 subdomain1.mysite.com 和 subdomain2.mysite.com 都会显示。
如何解决此问题并根据子域提供不同的应用程序?
【问题讨论】:
标签: node.js angular express url-routing loopbackjs