我有一个指向我的 webapp 的 azure cdn 设置。当我更改样式表并部署 webapp 时,样式会立即更新。那么在这种情况下是否没有任何清除要求?在这种情况下,cdn 会自动从 webapp 更新样式吗?
我正在根据这篇文章 https://azure.microsoft.com/en-in/documentation/articles/cdn-websites-with-cdn/
我有一个指向我的 webapp 的 azure cdn 设置。当我更改样式表并部署 webapp 时,样式会立即更新。那么在这种情况下是否没有任何清除要求?在这种情况下,cdn 会自动从 webapp 更新样式吗?
我正在根据这篇文章 https://azure.microsoft.com/en-in/documentation/articles/cdn-websites-with-cdn/
不,CDN 不会自动更新 webapp 的 CSS。为了安全起见,您应该始终清除。
CDN 是一项全球服务,您看到 CSS 更新并不意味着其他所有人都看到了 CSS 更新。另一个 IP 地址可能仍会缓存旧的 CSS。
此外,缓存控制头也在这里发挥作用。
如果资源的 URL 保持不变,CDN 服务器(和浏览器)可以自由地缓存它们。因此,如果您使用 CDN,则每次文件内容更改时都需要强制更改 URL(通常通过添加版本字符串来完成)。因为它对您有用,所以您的文件根本没有从 CDN 获得服务,或者 URL 正在以某种方式更新。
查看获取样式表的 URL(浏览器调试器中的网络选项卡)。确保 URL 路径实际上来自 CDN,而不是直接来自您的网站。
如果您有一个 MVC.net 应用程序并且您使用 System.Web.Optimization.BundleCollection 作为样式包,它会向嵌入在 HTML 中的 URL 添加一个查询参数,并在文件内容更改时更改它。这可确保不使用过时的资源缓存副本。
请参阅http://www.asp.net/mvc/overview/performance/bundling-and-minification上的 CDN 和捆绑缓存部分