我试图使用中间件在 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 看起来像这样:
目标资源应该是这样的:
我一直在尝试其他几个选项,它们似乎都没有按预期工作。
感谢您在这件事上的任何帮助!