首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >静态文件缓存、Angular2和部署

静态文件缓存、Angular2和部署
EN

Stack Overflow用户
提问于 2017-07-21 06:34:50
回答 1查看 280关注 0票数 0

我们有一个Angular 2客户端,它运行在Azure的.NET核心上的一个应用程序服务下。我们最近在startup.cs中添加了以下内容:

代码语言:javascript
复制
app.UseStaticFiles(new StaticFileOptions
        {
            OnPrepareResponse = ctx =>
            {
                const int durationInSeconds = 86400;
                ctx.Context.Response.Headers[HeaderNames.CacheControl] =
                    "public,max-age=" + durationInSeconds;
            }
        });

这将缓存静态文件(包括各种bundle.js文件)1天。虽然这会给我们带来性能上的好处,但我们在部署新版本时会遇到问题。我们显然不能告诉每个用户尝试CTRL + F5,但同时,我们需要尽可能长时间地缓存文件。

在如何处理这个问题上,我找不到太多的解决方案。

是否有共同的策略?

EN

回答 1

Stack Overflow用户

发布于 2017-07-21 10:15:52

据我所知,asp.net内核支持缓存崩溃。

CSS缓存崩溃是将某种形式的文件版本散列附加到JavaScript和

文件等资源的文件名中的过程。这样做的性能优势是,我们可以告诉浏览器无限期地缓存这些文件,而不必担心客户端在文件更改时无法获得最新版本。由于资源名称会随着文件内容的更改而更改,因此始终会下载更新后的文件。

要启用缓存破坏,只需将asp-append-version属性设置为true即可。

因此,我建议您可以在script标记中添加asp-append-version属性,如下所示。

代码语言:javascript
复制
 <script src="~/js/site.min.js" asp-append-version="true"></script>

然后它会在js文件后面自动添加一个十六进制值。

如果您更改js文件,它将更改js路径,以告知客户端获取新的js文件。

更改后的结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45226261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档