在XPages中缓存CSS和JS资源时,“使用运行时优化的JavaScript和CSS资源”

5
在XPages中,“使用运行时优化的JavaScript和CSS资源”是一个非常酷的功能,因为它将所有js文件合并成一个文件,将所有css文件合并成一个css文件。
然而我注意到这些合并后的文件没有被缓存(它们总是返回状态200),而当你不使用“使用运行时优化的JavaScript和CSS资源”时,它们会被缓存(并返回状态304)。
减少http请求是好的,但总是从服务器检索js和css文件,而它们可以通过ETag或Last-Modified http头进行缓存,这是不好的。有人知道我是否遗漏了什么或者是否有办法在使用“使用运行时优化的JavaScript和CSS资源”功能时缓存合并的文件(应用程序属性>XPages选项卡>性能部分>使用运行时优化的JavaScript和CSS资源)。

2
我刚在一个9.0.1服务器上检查了一下,似乎你的说法并不完全正确:被压缩(CSS和JavaScript)的资源是会被缓存的:默认情况下服务器会添加一个“过期”头信息,将其设置为10天后。这将导致浏览器在那段时间内完全不会请求这些资源,而是立即从缓存中提供它们。 - Mark Leusink
1
同意。资源已被缓存。 - Per Henrik Lausten
2个回答

7

运行时优化资源已被缓存。

这是一个例子: enter image description here

如果你正在使用Chrome开发者工具查看网络活动和响应代码,请确保它没有被设置为“禁用缓存(在DevTools打开时)”: enter image description here


谢谢你的回答。正如@Panu所提到的,我一直在按F5键。此外,我不知道状态(200缓存)(也称为bfcache)和(304)之间的区别。[https://dev59.com/5nI-5IYBdhLWcg3wy76n](Ben的答案)。Http头过期很酷,我们可以从Domino Designer中的应用程序>属性>基本选项卡>自定义浏览器缓存过期中设置它。 - Johann Echavarria

1
按下URL栏中的Enter键将遵守“Expires”头文件并从缓存中获取文件。但如果单击重新加载或按F5,则文件将重新加载。这至少是在Chrome和Firefox中的行为。
当从页面导航到另一页时,缓存正常工作。

1
谢谢您的回答。您说得对,我是按下F5而不是回车,当我之前勾选“使用运行时优化的JavaScript和CSS资源”时,它的行为就是您所说的。令我困惑的是:当我取消勾选“使用运行时优化的JavaScript和CSS资源”并按下F5时,文件(js和css)被缓存并返回304状态。最后,我学到了(200 bfcache)和304之间的区别,即http标头“过期”和“If-Modified-Since”。请参见我在@Per's回答中的评论。 - Johann Echavarria

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接