【发布时间】:2013-02-20 20:17:42
【问题描述】:
背景
MVC 4 应用程序需要包含从数据库生成的 JavaScript。生成的文件比较大,只是偶尔变化(2-10天变化一次)。
接受的答案
Generate javascript file on the fly in asp.net mvc
为生成 JavaScript 提供了一个很好的框架。但是,JavaScript 资源的 URL 是静态的。据我了解,浏览器将缓存该资源。该缓存可以由OutputCacheAttribute 控制。
问题
如何使浏览器缓存在生成的 JavaScript 更改时过期,类似于捆绑的工作方式?不能为OutputCacheAttribute 使用SqlDependency。
【问题讨论】:
-
脚本 URL 中的版本查询字符串?例如。
foo.js?v=1234567。 (当您的 JS 文件更改时,附加一个不同的查询字符串。这会强制浏览器请求它。) -
或者,将 javascript 文件命名为与其生成日期有关的名称。
-
@ColinDeClue:JavaScript 资源的名称是控制器的 URL,不是吗?不知道如何给 JavaScript 资源一个不同的名字。
-
@ŠimeVidas:该文件没有明确定义的“版本”。必须构造 JavaScript 时查询数据库。
-
@EricJ。嗯,上次查询数据库时的时间戳可以作为版本标识...
标签: javascript asp.net-mvc browser-cache