如何使用Angular CLI为特定的js文件设置反向代理

时间:2019-03-06 16:11:17

标签: angular angular-cli

在index.html页面中有一个脚本标记,我需要指向一个本地文件,该文件将获得对外部文件的反向代理。

这里使用的

jquery有一个占位符,因为这是我想到的第一件事,它将被托管在cdn上。我实际上没有在我的项目:D中混合使用angular和jquery。

HTML

<script type="text/javascript"
        src="fake/jquery-3.3.1.slim.min.js"></script>

angular CLI代理

const PROXY_CONFIG = [{
    context: ["/fake/jquery-3.3.1.slim.min.js"],
    target: "http://code.jquery.com/jquery-3.3.1.slim.min.js",
    secure: true,
    logLevel: "debug"
}];

module.exports = PROXY_CONFIG;

但这会在localhost:4200/fake/jquery-3.3.1.slim.min.js处抛出404。

我在Powershell中确实收到“代理尝试”消息。 [HPM] GET /fake/jquery-3.3.1.slim.min.js -> http://code.jquery.com/jquery-3.3.1.slim.min.js

我也尝试了context: ["fake/*"],但也尝试了404,并且没有触发任何代理消息。

1 个答案:

答案 0 :(得分:0)

我很近。我需要一个pathRewrite,因为CLI击中目标时会保留文件夹fake,因此CLI试图从https://code.jquery.com/fake/jquery-3.3.1.slim.min.js获取jquery。

我还想要secure: false,因为它允许所有证书而不是像我最初那样告诉CLI期望什么。

而且,因为它不是本地主机,所以我们想changeOrigin: true

const PROXY_CONFIG = [{
    context: ["/fake/"],
    target: "https://code.jquery.com/",
    pathRewrite: {
        "^/fake/": ""
    },
    secure: false,
    logLevel: "debug",
    changeOrigin: true
}];