一尘不染

从Artifactory安装作用域npm软件包

tomcat

我正在尝试使范围限定的npm软件包与Apache背后的Artifactory一起使用。我可以将范围界定的包发布到Artifactory,它会在npm-
local存储库中创建以下路径:@scopename/packagename/-/@scopename/packagename-version.tgz

尝试安装此软件包时出现了我的问题。我得到一个404 Not Found: @scopename/packagename。查看调试日志,我可以发现它可能与斜杠的编码有关:

22 http request GET https://artifacts.company.com/artifactory/api/npm/npm-local/@scopename%2fpackagename
23 http 404 https://artifacts.company.com/artifactory/api/npm/npm-local/@scopename%2fpackagename

我遵循了在线文档。我已添加AllowEncodedSlashes NoDecode到虚拟主机和org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=truetomcat上的catalina.properties文件。

我想念什么吗?


阅读 507

收藏
2020-06-16

共1个答案

一尘不染

这看起来像是反向代理问题。检查您的request.log。如果请求以/ api / npm / npm-group / @ angular /
core代替/ api / npm / npm-group / @ angular%2Fcore发出,则这是在反向代理中需要解决的问题。

您必须更改两件事:实现设置org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH =
true并从/etc/nginx/conf.d/default.conf中的proxy_pass变量中删除上下文根

2020-06-16