gpt4 book ai didi

.net - 静态内容缓存

转载 作者:行者123 更新时间:2023-12-02 03:11:30 24 4
gpt4 key购买 nike

我们在公司中使用 IIS7 和 dotnet 3.5 来构建供内部和外部客户使用的不同 Web 应用程序。建议我们开始使用静态内容缓存来缓存图像和 html 文件。我的理解是,在web.config文件中,我们可以设置cachecontrolmaxage来指定文件需要缓存的天数。此外,建议我们通过传递一个参数(例如 myjsfile.js?verfile=1234)来调用这些静态页面,只要将文件的新版本投入生产,就可以更改该参数。

我希望我能做到以上,对吗?现在我正在寻找一种更好的方法来实现第二部分,而不是每次创建新文件时都必须传递新版本号,我们可以以其他方式部署它,以便对静态文件进行任何新更改在生产环境中。我想我正在寻找一种简单的方法来在生产中推广多个图像和静态文件,而无需担心更改版本号。

最佳答案

自 IIS7 起,所有 IIS 配置都可以通过 web.config 文件应用,更具体地说是 system.webServer section 。在这种情况下,您应该检查 Caching Section并创建一个custom profile (确保将 VarByQueryString 属性设置为 true 以使“?version=xxx”起作用)。

进入部署问题,URL 需要更改,因为在缓存有效时客户端不会检查文件的新版本(并且您说您可能希望将天数设置为缓存持续时间)。一种常见的模式是根据修改日期自动生成 url,例如,如果您的原始行是:

<script src='functions.js' />

您可以将其更改为:

<script src='<%=GetFilenameWithModificationDate("functions.js")%>' />

该函数应获取文件修改日期并将其附加到文件中,因此如果文件上次修改时间为 2010 年 1 月 1 日 10:12:34,则应生成如下内容:

<script src='functions.js?version=20100101101234' />

这样,每当您修改文件时,都会包含新的查询字符串并更新缓存。

由于您正在缓存静态文件,我假设性能是一个考虑因素,因此您应该考虑检查每个文件的修改日期的惩罚,并且您可能希望在辅助函数、控件或无论您决定使用哪种机制。

HTH

关于.net - 静态内容缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137932/

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