gpt4 book ai didi

javascript - 在发布时强制重新加载 Javascript 文件,而无需查看服务器代码

转载 作者:行者123 更新时间:2023-12-02 14:13:47 24 4
gpt4 key购买 nike

我有一个使用 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 文件的解决方案。我需要一个仅在部署新版本(版本号更改)时重新加载文件的解决方案。

最佳答案

您可以使用任务运行程序,例如 Grunt 或 Gulp:

http://gruntjs.com/

http://gulpjs.com/

他们可以 lint、缩小、构建一些东西并做你想做的事情,查找包含项目版本的一些属性文件并编辑你的 html。他们甚至可以将您的 js 文件合并到一个文件中并将其替换为您的 index.html:

 <script src="compiled.js?_=1234567890"></script>

关于javascript - 在发布时强制重新加载 Javascript 文件,而无需查看服务器代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39231901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com