0

我试图使用中间件在 localhost中代理一个 cdn url ( https://cdn.somedomain.com/vhost ),但它给了我一些奇怪的错误。

在讨论这个问题之前,我一直在尝试访问一个 CDN url,它会在资源不允许通配符 ( *) 的情况下产生 CORS 错误,我需要匹配域名来解决这个问题。因此,我尝试将域名别名为/etc/hosts/.

像这样的东西:

127.0.0.1 cdn.somedomain.com.local

这是我的服务器配置文件:

const express = require('express');
const vhost = require('vhost');
...
const app = express();
const { cdn } = require('./cdn.js');
app.use(vhost('cdn.somedomain.com.local', cdn));

最后一行抱怨编译错误:

没有重载匹配此调用。

最后一个重载给出了以下错误。“Function”类型的参数不能分配给“PathParams”类型的参数。类型 'Function' 缺少类型 '(string | RegExp)[]' 中的以下属性:pop、push、concat、join 等 27 个。

cdn.js

const express = require('express');
const cors = require('cors');
const path = require('path');

const cdn = express();
cdn.use(cors());
cdn.use(express.static(path.resolve(__dirname, '../static-host/')));

module.exports = { cdn };

当我运行该应用程序时,我得到一个404并且请求 url 看起来像这样:

http://cdn.somedomain.com.local:3000/

目标资源应该是这样的:

https://cdn.somedomain.com/

我一直在尝试其他几个选项,它们似乎都没有按预期工作。

感谢您在这件事上的任何帮助!

4

0 回答 0