我正在尝试使用作用域的npm包来处理Apache背后的Artifactory。我可以将一个范围包发布到Artifactory,它会在npm-local repo中创建以下路径:@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=true
添加到tomcat上的catalina.properties文件中。
我错过了什么吗?
答案 0 :(得分:3)
这看起来像是反向代理问题。检查你的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变量中删除上下文根