You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Team Foundation Server Web界面显示Gravatar头像?

阻止TFS Web界面加载第三方Gravatar头像的解决方案

针对你使用的TFS 15.117版本,我整理了几个能有效阻止Web界面加载第三方Gravatar头像、只保留本地上传头像的方案,你可以根据自身环境选择:

方法1:修改TFS服务器配置(最推荐)

TFS本身就内置了禁用Gravatar的配置项,直接修改服务器端的配置文件就能搞定:

  • 找到TFS应用层服务器上的web.config文件,常规路径是C:\Program Files\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\web.config
  • 打开文件,找到<appSettings>节点,在里面添加一行配置:
    <add key="EnableGravatar" value="false" />
    
  • 保存文件后,重启TFS相关服务:在Windows服务管理器里找到Visual Studio Team Foundation Background Job Agent和对应的IIS应用池(Microsoft Team Foundation Server Application Pool),重启它们。
    这个配置会让TFS彻底停止向Gravatar服务器发起请求,只使用本地用户上传的头像。

方法2:通过反向代理拦截请求

如果你的TFS前端部署了反向代理(比如IIS ARR、Nginx),可以在代理层拦截所有Gravatar的请求:

  • IIS ARR配置:在URL重写模块里新建规则,匹配https://secure.gravatar.com/avatar/*的请求,然后将其重定向到你本地的默认头像文件(避免界面显示缺失头像),或者直接返回404。
  • Nginx配置:在Nginx的站点配置里添加以下规则:
    location ~* ^/avatar/ {
        rewrite ^(.*)$ /path/to/your/local/default-avatar.png break;
        # 若不需要默认头像,也可以直接 return 404;
    }
    

这样TFS发起的重定向请求会被代理拦截,不会泄露任何仓库信息到Gravatar服务器。

方法3:浏览器用户脚本(个人临时方案)

如果不想碰服务器配置,也可以用浏览器的用户脚本工具(比如Tampermonkey)来实现客户端拦截:

  • 先安装Tampermonkey插件
  • 创建一个新脚本,粘贴以下代码:
    // ==UserScript==
    // @name         Block TFS Gravatar
    // @match        https://tfs.local/tfs/*/_git/*/history*
    // @match        https://tfs.local/tfs/*/_git/*/commits*
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
        // 移除已加载的Gravatar图片
        document.querySelectorAll('img[src*="gravatar.com"]').forEach(img => {
            img.src = ''; // 也可以替换成你自己的本地默认头像URL
        });
        // 监听动态加载的内容(TFS会异步加载历史记录)
        const observer = new MutationObserver(mutations => {
            mutations.forEach(mutation => {
                mutation.addedNodes.forEach(node => {
                    if (node.tagName === 'IMG' && node.src.includes('gravatar.com')) {
                        node.src = '';
                    }
                });
            });
        });
        observer.observe(document.body, { childList: true, subtree: true });
    })();
    

这个脚本会自动拦截页面上所有指向Gravatar的图片请求,适合个人临时使用。

验证是否生效

修改完成后,打开TFS的Git历史页面,按下F12打开浏览器开发者工具,切换到“网络”标签,刷新页面后确认没有secure.gravatar.com的请求,同时本地上传的头像正常显示,就说明配置生效了。

内容的提问来源于stack exchange,提问作者Stefan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:18:06