SharePoint 2013 Nov2017CU补丁后Site Assets中JS文件无法更新求助
我之前帮客户处理过类似的SharePoint 2013安装CU后静态资源缓存异常的问题,给你几个实际可行的排查和解决方向:
1. 检查并重置Blob Cache
SharePoint的Blob Cache是专门用来缓存静态资源(比如JS、CSS、图片)的核心组件,CU补丁更新很可能修改了缓存配置或者触发了缓存死锁:
- 打开对应Web应用的
web.config文件(路径一般是C:\inetpub\wwwroot\wss\VirtualDirectories\<你的Web应用端口>),找到<BlobCache>节点 - 临时将
enabled属性设为false,保存配置后运行命令iisreset /noforce重启IIS - 测试修改JS文件是否生效,确认后再把
enabled改回true,同时手动清理Blob Cache的物理目录(默认是C:\BlobCache,具体看节点里的location属性值)
2. 刷新对象缓存和检查输出缓存
- 对象缓存刷新:以网站集管理员身份进入网站设置,找到「网站集管理」下的「对象缓存」,点击「刷新对象缓存」按钮,完成后等待几分钟再测试
- 输出缓存检查:进入站点设置的「网站设置」>「输出缓存」,检查是否有针对Site Assets库的自定义缓存规则,临时禁用所有输出缓存规则测试是否恢复正常
3. 重启分布式缓存服务
SharePoint的分布式缓存会同步站点资源的缓存状态,CU更新可能导致缓存同步异常:
- 以管理员身份打开SharePoint Management Shell,依次运行以下命令:
Stop-SPDistributedCacheServiceInstance -Graceful Start-SPDistributedCacheServiceInstance - 运行
Get-SPDistributedCacheServiceInstance确认服务状态为Online后,再测试文件修改是否生效
4. 验证Site Assets库的版本与审批设置
虽然你提到版本历史有异常,但还是要确认库的基础配置:
- 进入Site Assets库的「库设置」>「版本控制设置」,检查是否开启了「需要内容审批」,如果开启,修改后的文件版本可能处于未审批状态,导致前端始终加载旧版本
- 同时确认「保留草稿版本」的设置,尝试把草稿版本数设为0,测试修改是否能立即生效
5. 清理服务器级别的文件缓存
除了SharePoint自身的缓存,服务器系统层面的缓存也可能残留旧文件:
- 清理服务器上的「Internet临时文件」(控制面板>Internet选项>删除文件)
- 手动删除SharePoint临时文件目录,比如
C:\inetpub\wwwroot\wss\VirtualDirectories\<端口号>\temp下的所有文件 - 重启服务器后再测试文件删除和修改的效果
内容的提问来源于stack exchange,提问作者David Drever
相关产品推荐
相关产品推荐

