如何使用 .htaccess 停止缓存 adsbygoogle.js?

How do I stop caching of adsbygoogle.js using .htaccess?

提问人:projectmonkey 提问时间:11/10/2023 最后编辑:projectmonkey 更新时间:11/10/2023 访问量:33

问:

我正在尝试阻止 adsbygoogle.js 被缓存。理想情况下,我希望其他所有内容仍然被缓存。

目前,我在.htaccess中有以下内容。

# Begin cache control #
<ifModule mod_headers.c> 
    # One year for image and video files
    <filesMatch ".(flv|gif|ico|jpg|jpeg|mp4|mpeg|png|svg|swf|webp)$">
        Header set Cache-Control "max-age=31536000, public"
    </filesMatch>

    # One month for PDF files
    <filesMatch ".(pdf)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>

    # One week for CSS files
    <filesMatch ".(css)$">
        Header set Cache-Control "max-age=604800, public"
    </filesMatch>
    
    #no cache for js
    <filesMatch "\.(js)$">
        FileETag None
        Header unset ETag
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Pragma "no-cache"
        Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
    </filesMatch>
</ifModule>

这似乎不起作用,即使它确实有效,它也会阻止缓存任何.js,而我只希望 https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3370240294319443 不被缓存。

我正在通过点击检查然后检查网络选项卡,广告的标头来检查它是否在Chrome中工作google .js?

JavaScript Apache .htaccess 缓存 缓存控制

评论

2赞 CBroe 11/10/2023
这些指令指定应如何处理 Web 服务器交付的资源。您无法为来自其他服务器的资源设置缓存指令,而您甚至无法控制这些资源。
0赞 projectmonkey 11/10/2023
好的,我明白了,我不能告诉谷歌的服务器不要缓存adsbygoogle.js。在我的一个网页上,当我单击检查,网络,广告.js的标题时,它有时具有状态200 OK(来自磁盘缓存)。这是否意味着它已经从 Google 的缓存中加载?
0赞 CBroe 11/10/2023
不,它是从浏览器的磁盘缓存中加载的。在 Google 端缓存只 Google 有意义 - 如果创建此 URL 背后的内容会消耗大量资源,那么他们可能希望在他们端缓存结果。但这对请求客户端没有任何作用,这些客户端仍然必须获取资源。
0赞 CBroe 11/10/2023
如果你想停止缓存,那么你需要实现所谓的缓存克星 - 附加一个随机的 URL 参数,该参数不会改变返回的内容,但会使它成为浏览器的新 URL,它无法从任何缓存中获取,仅仅是因为它以前从未获取过它。
0赞 projectmonkey 11/10/2023
所以没有办法阻止浏览器缓存广告bygoogle.js?忽略这一点。只需阅读您的最后一条评论。

答: 暂无答案