【发布时间】:2017-01-06 23:58:23
【问题描述】:
我有一个项目使用 Javascript 文件作为其逻辑:
<script src="myMagicCode.js" ></script>
当我发布新版本时,客户端必须清除缓存才能使新代码正常工作。
我通常可以通过添加参数来解决这个问题:
<script src="myMagicCode.js?version=1.23" ></script>
但我懒得在每个版本上都这样做。所以我想自动化这种行为。
包含脚本引用的页面是纯html,不能包含任何服务器代码。
但是我有返回版本的服务器代码。
所以我的想法是将脚本 - 代码更改为类似
<script src="api/GetJsUrl"></script>
api/GetJsUrl 是一个 GET-Action,其中包含类似的内容
string url = "myMagicCode.js?Version="+GetCurrentVersion();
HttpContext.Response.AddHeader("Location", url);
return new HttpStatusCodeResult(307);
当新版本发布时,这会强制浏览器重新加载 JS 文件吗?还是只缓存 api/GetJsUrl-Request 并且我遇到和以前一样的问题?
如果仍然存在问题:是否有更好的解决方案?
备注:我不会搜索每次都重新加载 JavaScript 文件的解决方案。我需要一个仅在部署新版本(版本号更改)时重新加载文件的解决方案。
【问题讨论】:
标签: javascript asp.net-mvc http-headers http-redirect