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

Blazor Server是否内置防止浏览器缓存旧JS文件的机制?

Blazor Server 内置防浏览器缓存旧JavaScript文件方案

Blazor Server 提供了和MVC中asp-append-version效果类似的内置功能,无需手动实现哈希计算,主要有两种原生方案:

1. .NET 6+ 利用IWebHostEnvironment生成版本标记

通过注入IWebHostEnvironment服务,可基于文件最后修改时间自动生成版本参数,实现缓存刷新:

  • 在_Host.cshtml中注入服务:
@inject IWebHostEnvironment Env
  • 引用JS文件时拼接版本标记:
<script src="~/js/global.js?v=@Env.WebRootFileProvider.GetFileInfo("js/global.js").LastModified.ToString("yyyyMMddHHmmss")"></script>

文件更新后,最后修改时间会变化,版本参数随之更新,强制浏览器加载新文件。

2. .NET 7+ 使用内置Script组件

.NET 7及以上版本新增了原生Script组件,内部自动处理资源版本哈希追加,用法极简:

<Script src="~/js/global.js" />

该组件完全替代MVC标签助手的功能,无需额外代码即可实现缓存失效逻辑。

注意事项

  • 确保JS文件存放于wwwroot目录下,这样框架才能正确读取文件信息生成版本标记。
  • 两种方案均为.NET框架原生支持,无需依赖第三方工具或手动哈希计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:17:02