我试图让scoped npm包与Apache后面的Artifactory一起工作。我可以发布一个范围包到Artifactory,它会在npm-local repo中创建以下路径:@scopename/packagename/-/@scopename/packagename-version.tgz
从Artifactory安装scoped npm包
尝试安装此软件包时出现问题。我得到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文件。
我错过了什么吗?
谢谢你的回应,我使用apache而不是nginx。你是说它应该回来一个“/”或“%2F”? –
它应该回来作为“/” 即使你不使用Nginx,看看在Apache中是否有类似的设置。你可能在Apache上运行artifactory,但我相信Artifactory默认使用Nginx作为反向代理。如果Apache正在处理两者,请检查并查看是否有类似的设置。 – imthinhvu
它应该看起来像%2F一路 –