![532d3d664d2f07bb1b47d36c937b683a.png](https://i-blog.csdnimg.cn/blog_migrate/00a99b59610cddf675d7ab90f23ab0f4.jpeg)
![5087584fa7ab023a70201594bbac6b94.png](https://i-blog.csdnimg.cn/blog_migrate/f00e9751ef71615a504d822d6d98ed74.jpeg)
当你使用Sentry的Javascript SDK时,源文件和sourcemap是通过堆栈跟踪里的URLs去抓取的。虽然这是默认配置,也可以在项目设置里禁用Javascript源文件抓取。在不断努力改善配置的可访问性和安全性的过程中,Sentry现在允许您在整个组织范围内控制这个功能。
在哪找到这个配置
在组织设置里,定位到安全与隐私。在这部分的底部,你能看到Allow JavaScript source fetching。再重申一次,这个功能默认是打开的。当关闭时,Sentry将要求你确认变更设置,因为如果你还没有上传sourcemaps,关闭此功能将会影响Sentry问题汇总功能。
想看实际效果?这是组织常规设置底部的开关:
![71fd9b97b44fc6164f225c86e1b560e2.png](https://i-blog.csdnimg.cn/blog_migrate/ed3ce2fc1da1f54453d4ec72094867a8.jpeg)
这是你将其关闭时的确认框:
![d0a03c57ffc739088f7ba3460342030a.png](https://i-blog.csdnimg.cn/blog_migrate/18fe180a589f48f69ee41939355fa288.jpeg)
简单吧?开启源文件抓取,关闭源文件抓取,这都取决于你。然而,出于某些原因,Sentry建议将其关闭。
为什么要禁用Javascript源文件抓取
前后矛盾
想想一下当你(没有版本管理)的Javascript存放在https://example.com/app.js。。每次Sentry抓取这个地址时,也许会抓取到不同的版本的代码。也许这看起来不错,但实际上当你部署代码后,用户不刷新页面时,这就会有问题。最终导致Sentry为旧的异常抓取了最新的代码(换句话说,这行不通)。
不可靠
如果你的站点宕机或者响应失败,Sentry就无法将异常映射到源码上。更重要的是无法抓取sourcemap。缺少这个,Sentry的汇总效率将大大降低。
安全问题
公开敏感URL通常不是一个好主意。实际上,你不希望类似于Sentry的爬虫去触碰它。有时Sentry的爬虫会产生错误。或者你的Javascript文件需要认证,请求到正确的源码几乎不可能。
不打算禁用Javascript源码抓取?Sentry墙裂推荐你使用其发布的artifacts API并上传sourcemap。请阅读这套非常详细的说明
无论你是要调试Ember,进行React的错误跟踪,亦或是处理一个Angular的异常。Sentry都会尽可能为你和你的团队提供最佳体验。