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

使用Azure CLI部署WebGL应用时Last-Modified异常致缓存失效如何解决?

Azure CLI az webapp deploy部署WebGL应用缓存异常问题解决

问题现象

  • 使用az webapp deploy部署WebGL应用到Azure后,Chrome等浏览器无法正常缓存静态文件
  • 根因:文件的Last-Modified响应头被设置为未来时间——本地时区(如GMT+3)的时间被当作GMT时间处理,比如本地13点部署后,响应头显示GMT 13点(比实际UTC时间早3小时,属于未来时间)
  • 表现:浏览器因Last-Modified为未来值,每次请求都会重新加载文件;等待3小时后时间变为过去值,缓存自动恢复正常
  • 验证:手动通过PowerShell修改文件的LastWriteTime和LastWriteTimeUtc为3小时前,Last-Modified头同步修正,缓存恢复正常

已验证的临时解决方案

在构建脚本中添加PowerShell处理步骤,遍历所有构建产物文件,将文件的写入时间减去当前时区与UTC的偏移量,确保部署到Azure后转换为GMT时间时与实际时刻匹配:

# 获取本地时区与UTC的小时偏移量
$utcOffset = [TimeZoneInfo]::Local.BaseUtcOffset.TotalHours
# 遍历目标构建目录下的所有文件
Get-ChildItem -Path "你的构建产物目录路径" -Recurse -File | ForEach-Object {
    # 计算调整后的时间
    $adjustedTime = $_.LastWriteTime.AddHours(-$utcOffset)
    # 更新文件的写入时间(本地和UTC时间同步调整)
    $_.LastWriteTime = $adjustedTime
    $_.LastWriteTimeUtc = $adjustedTime.ToUniversalTime()
}

潜在优化方向

  • 暂未发现Azure CLI的az webapp deploy命令有直接支持时区同步的参数,可关注官方文档更新
  • 考虑在构建工具(如Unity、webpack等)的构建阶段直接生成UTC时区的文件修改时间,从源头避免时区转换错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:07:46