快取清除不CefSharp工作(Cache Busting not working in CefSh

2019-10-20 06:37发布

我使用cefsharp(用于.NET铬嵌入式框架)来承载使用要求JS在大多数我的JavaScript模块加载Web应用程序。

为了加快我的申请我已经通过响应头启用cacheing“缓存控制:公众,最大年龄= 864000”为我所有的静态内容。

当我部署我的web应用程序我正在追加是获取与require.config的urlArgs PARAM每个部署递增一个版本号的新版本()执行一个“缓存萧条”时,我的内容变化需要JS不发送“如果-Modified-Since的”或“如果 - 无 - 匹配”请求标头,以便根据电子标签或最后修改日期浏览器未自动地检测我的变化。

这种“缓存无效”的解决方案完全在IE9,IE10,以及独立铬(35版目前)。 我的问题是cefsharp似乎完全无视我的缓存胸围查询字符串,并会还是去缓存时我改变查询字符串。 即使我追加一个完全不同的查询字符串,如时间戳(请参见下面的代码片段举例来说)它不拉下一个新的版本。

从我可以告诉这似乎是一个bug或者有可能,我无法在任何CEF或cefsharp找到配置设置,但我不能找到解决为什么CEF / cefsharp会无视我的查询字符串,并直接将缓存中的任何信息。

我已经运行小提琴手,并可以看到它时,我改变查询字符串cefsharp不作要求。 我也确实看到了查询字符串出现在初始加载(当我手动删除缓存文件夹,并重新加载)。

没有人有任何线索,为什么cefsharp会表现这样吗? 我曾经尝试都稳定的构建(使用铬25.x)以及预发布版本。 这两种行为相同。

CefSharp版本: https://github.com/cefsharp/CefSharp

需要JS网址ARGS代码片段:

(function () {
    "use strict";
    require.config({
        waitSeconds: 200,
        paths: {
            //Removed for brevity
        },
        shim: {
            //Removed for brevity
        },
        urlArgs: 'v=8.4.1.7',
        //urlArgs: "bust=" + (new Date()).getTime() //(also tried this as a test, no luck)
   });
})();

我在CefSharp(仅包括相关片)已经配置缓存设置:

Private WithEvents _webView As CefSharp.WinForms.WebView
Private WithEvents _rq As Object

Private Sub Initialize()
    'Enable both applicaton and page cache settings (i have tried disableing application cache, did not help)

    Dim settings = New BrowserSettings()
    settings.ApplicationCacheDisabled = False
    settings.PageCacheDisabled = False
    settings.LocalStorageDisabled = False

    Dim s = New CefSharp.Settings()
    s.PackLoadingDisabled = True            
    s.CachePath = "SOME_USER_SPECIFIC_PATH" 'Removed the actual path building code

    If CEF.IsInitialized = False Then
        CEF.Initialize(s)
    End If

    _webView = New CefSharp.WinForms.WebView(_url, settings)
    _rq = New RequestHandler
    _webView.RequestHandler = _rq
    _webView.Dock = DockStyle.Fill

    _webView.Refresh()
    _webView.Load(_url)
End Sub

任何人都可以提供任何建议,设置我应该尝试,解决方法等? 有一件事是不是真的我的选择是手动删除缓存文件夹上的每一个部署,由于我不会进入的原因。

任何帮助深表感谢。

谢谢

文章来源: Cache Busting not working in CefSharp