Asp.net mvc 5 asp.net mvc中不更改代码的缓存破坏

Asp.net mvc 5 asp.net mvc中不更改代码的缓存破坏,asp.net-mvc-5,iis-8,Asp.net Mvc 5,Iis 8,我们有一个asp.NETMVC5应用程序,在这个应用程序中,每个页面都有自己的JavaScript文件。大多数情况下,由于缓存的原因,这些脚本文件会发生更改,而这些更改不会显示在客户端,因此我们必须告诉用户按Ctrl+F5刷新页面,否则脚本文件将从缓存中提供。我搜索并找到了多个解决方案,在大多数解决方案中,它是编写一个HTML帮助程序,然后用帮助程序函数替换每个页面/视图中的所有js文件引用。这种方法是一项繁忙的工作,因为我们至少有300页/视图。现在我的问题是。在IIS或任何其他方式中是否存在

我们有一个asp.NETMVC5应用程序,在这个应用程序中,每个页面都有自己的JavaScript文件。大多数情况下,由于缓存的原因,这些脚本文件会发生更改,而这些更改不会显示在客户端,因此我们必须告诉用户按Ctrl+F5刷新页面,否则脚本文件将从缓存中提供。我搜索并找到了多个解决方案,在大多数解决方案中,它是编写一个HTML帮助程序,然后用帮助程序函数替换每个页面/视图中的所有js文件引用。这种方法是一项繁忙的工作,因为我们至少有300页/视图。现在我的问题是。在IIS或任何其他方式中是否存在这样一种方式:如果脚本文件在服务器上更改,则在代码级别不做任何更改的情况下,它将不会从缓存中为该文件提供服务

您使用的是默认绑定器吗?它应该可以处理这种情况。我正在使用绑定,用于所有在页面之间共享的脚本,正如我在上面所说的,超过300个页面,每个页面都有自己的JavaScript响应域。因此,页面级脚本不在绑定中。也许您可以找到一种方案,对页面脚本进行分组和绑定(可能按区域),然后为页面加载区域脚本,而不是单个脚本。您也可以在脚本url上使用,但这需要代码来生成url。谢谢@Jasen。此解决方案很好,但当脚本发生更改时,需要更改查询字符串值。即使您设法在IIS或应用程序中使用缓存控制头,浏览器也可以自由忽略它们并继续为缓存资源提供服务。