0
我试图使用hapijs + inert pluginhapijs - 从服务目录处理静态文件与可变路径名
{
method: 'GET',
path: '/l/{path*}',
handler: {
directory: {
path: (req) => {
const defaultDir = '/public';
return getHostInfo(req.headers.host).then((d) => {
if (!d || !d.directory) return defaultDir;
return d.directory;
}).catch((e) => {
return defaultDir;
});
}
}
}
},
path
参数做这样的事情在我的路线文件需要一个字符串,数组或函数返回一个字符串或数组...在我的情况下,我的函数返回一个承诺...所以它不起作用。 我试过添加hapi-as-promised
包,它修改了reply
函数来支持then
方法,但没有奏效。
基本上我想从一个目录或另一个目录提供静态资产,具体取决于主机头值。
最后我用了使用url参数播放的reply.file,我猜它使用预处理器方法节省了一些数据库查询,但是当然你的解决方案是有效的。我知道这不是最好的方式,我只是有一个非常奇怪的要求,收到一个HTML文件和资产的zip文件,他们希望通过自定义登陆页面取代项目中的反应应用程序索引路线取决于子域。 ..我不喜欢这个解决方案(既没有这个要求),但是为了获得时间,在这个工作之后立即考虑一个更好的方法。 如果你的方法可能会更好,请警告我。 – Polak
@Polak是啊,看起来像是一个更复杂的方式来做:) – Alexander
但是,如果有人会用我写的方式,不要做延期,而是使用先决条件。 – Alexander