为什么指令模板有时是从服务器加载的(有 304 响应),有时是从浏览器缓存中加载的(根本没有请求)?
Why directive templates sometimes are loaded from server (with 304 response) and sometimes from browser cache (no request at all)?
当我重新加载页面时,Angular 指令模板以两种方式加载。
第一个 - 浏览器向服务器发出请求并以 304 响应 - 没问题。
但是第二个 - 浏览器不发出请求。我猜不出为什么。
因此,当我对第一组的模板进行更改时,更改会在下一页重新加载时显示。但是没有显示第二组模板中的更改。就是这个问题。
问题是 - 如何让浏览器为每个模板向服务器发送请求?
似乎在模板的响应 header 中没有 Cache-Control
headers. In such case a browser will use a heuristic 来决定响应 可以 缓存多长时间。
解决您在开发中总是获取最新模板的问题。您可以:
- 在开发者工具中检查"Disable cache"
为您关心的资源设置适当的 Cache-Control
header 即:
Cache-Control: no-cache
如果您想了解由各种 Cache-Control
值触发的不同行为,我强烈推荐 this article by Ilya Grigorik。
当我重新加载页面时,Angular 指令模板以两种方式加载。
第一个 - 浏览器向服务器发出请求并以 304 响应 - 没问题。
但是第二个 - 浏览器不发出请求。我猜不出为什么。
因此,当我对第一组的模板进行更改时,更改会在下一页重新加载时显示。但是没有显示第二组模板中的更改。就是这个问题。
问题是 - 如何让浏览器为每个模板向服务器发送请求?
似乎在模板的响应 header 中没有 Cache-Control
headers. In such case a browser will use a heuristic 来决定响应 可以 缓存多长时间。
解决您在开发中总是获取最新模板的问题。您可以:
- 在开发者工具中检查"Disable cache"
为您关心的资源设置适当的
Cache-Control
header 即:Cache-Control: no-cache
如果您想了解由各种 Cache-Control
值触发的不同行为,我强烈推荐 this article by Ilya Grigorik。