gpt4 book ai didi

angular - 在Varnish代理后面的Angular 5.6.0中设置文档根目录

转载 作者:行者123 更新时间:2023-12-03 17:46:14 28 4
gpt4 key购买 nike

我的 Angular 5 应用程序将在 Varnish 代理后面运行。假设我们的公司网站在 test.corporate.com 上运行,而我的本地计算机是 dev5.local ,那么 varnish 现在暂时由系统管理配置为将 https://test.corporate.com/albert 指向 http://dev5.local:4200/(但他们可以将其指向我们喜欢的任何内容)。这是代理,而不是重定向。在我使用 ng-serve 运行的 angular index.html 中,我已经配置了 documentroot:

<base href="/albert/">

当我在浏览器中访问 https://test.corporate.com/albert/ 时,我的 index.html 的 html 会加载,但所有其他文件(css、javascript)都无法加载。当我去 http://dev5.local:4200/ 时也会发生同样的情况,但是由于 documentroot ,后者不起作用是有意义的。

我们已经尝试了上述 varnish config 和 documentroot 的变体,但似乎没有任何效果。使用上面的配置,这是对我来说最有意义的变体,它尝试加载 https://test.corporate.com/albert/inline.bundle.js 却失败了。我似乎也无法手动编辑 url 并查看是否可以在浏览器中加载该 js 文件,例如 https://test.corporate.com/albert/albert/inline.bundle.js 还给出了一个带有重定向的“未找到”。

由于 html 确实加载,它不应该与 http 与 https 相关。

最佳答案

我不确定Varnish Proxy,但是在apache-tomcat服务器中部署我的代码,而不是通过 Angular 4的'/anotherPath/从'/'而是从'/anotherPath/'服务该站点时,我也遇到了同样的问题。

我所做的是在构建应用程序时,我在构建命令中添加了以下2个属性

ng build --prod --base-href "/" --deployUrl="/anotherPath/"

发布此版本后,我已将 <base href="/">更新为新创建的dist文件夹内index.html文件中的 <base href="/anotherPath/">,然后将其部署到服务器上。

这是一种解决方法,可以解决我的问题。

解决此问题后,您可能还会遇到另一个问题,即重新加载将不起作用,因为您将通过“/anotherPath/”而不是“/”进行转换。对于例如重新加载
https://test.corporate.com/albert/user/login,您会得到一个错误。

为此,我们在apache-tomcat中配置了重写规则。如果您需要更多信息,请告诉我。

关于angular - 在Varnish代理后面的Angular 5.6.0中设置文档根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50351803/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com