Html 文件不';不响应https上的应用程序缓存更新,但不响应http

Html 文件不';不响应https上的应用程序缓存更新,但不响应http,html,iis,iis-7,https,application-cache,Html,Iis,Iis 7,Https,Application Cache,我们有一个webapp,配置为使用html缓存清单缓存所有文件并脱机工作。我们的应用程序主要通过谷歌浏览器运行 直到最近,我们还不需要在https上运行,所有操作都按照预期在http上运行。但是,它通过https缓存所有图像(可能还有其他文件,但图像是最重要的部分),并且拒绝放弃它们 我们的发布流程如下: 将较新的映像文件释放到服务器上的正确位置(IIS inetpub/wwwroot/../images文件夹) 更新缓存清单末尾的注释版本号以强制更新 webapp将在下次刷新时自动更新(确实如

我们有一个webapp,配置为使用html缓存清单缓存所有文件并脱机工作。我们的应用程序主要通过谷歌浏览器运行

直到最近,我们还不需要在https上运行,所有操作都按照预期在http上运行。但是,它通过https缓存所有图像(可能还有其他文件,但图像是最重要的部分),并且拒绝放弃它们

我们的发布流程如下:

  • 将较新的映像文件释放到服务器上的正确位置(IIS inetpub/wwwroot/../images文件夹)
  • 更新缓存清单末尾的注释版本号以强制更新
  • webapp将在下次刷新时自动更新(确实如此)
  • 我们期望发生的是,新的图像将立即开始出现,但事实并非如此。即使直接通过
    https://CLIENTDOMAIN/relpath/image.png
    ,图像作为原始缓存图像加载。如果通过http在同一路径加载图像,它将正确显示新图像

    如果图像通过https加载到从未加载过的浏览器上(例如firefox或opera),则不正确的旧缓存图像仍将显示在https上,但将显示为http上的新图像。重新启动IIS没有任何效果,也不会通过chrome设置删除所有特定网站数据(
    settings->Advanced settings->Content settings->all Cookies and Site data->specific Domain

    现在,我怀疑问题出在IIS的深处,所以这里是我们正在使用的IIS设置,我们通过IIS GUI进行所有更改:

    IIS Settings
    
    Our webapp runs off Default Website
    
    Output Caching: disabled completely
    Bindings: *:80 and *:443
    SSL Settings: Not Required, ignore client certs
    Everything else is likely standard.
    
    缓存清单: 为了安全起见,我用CLIENTDOMAIN替换了域名,用我们的品牌或品牌替换了我们的软件名

    CACHE MANIFEST
    
    #html
    index.html
    BRAND.html
    #favicon.ico
    
    #images
    https://CLIENTDOMAIN/images/accept.png
    https://CLIENTDOMAIN/images/add.png
    https://CLIENTDOMAIN/images/watermark.png
    https://CLIENTDOMAIN/images/BRAND_Icon_Round32x32.png
    https://CLIENTDOMAIN/images/BRAND_Icon_Square57x57.png
    https://CLIENTDOMAIN/images/break.png
    https://CLIENTDOMAIN/images/calendar.png
    https://CLIENTDOMAIN/images/clock.png
    https://CLIENTDOMAIN/images/clock1.png
    https://CLIENTDOMAIN/images/delete.png
    https://CLIENTDOMAIN/images/display.png
    https://CLIENTDOMAIN/images/downArrow.png
    https://CLIENTDOMAIN/images/editgroup.png
    https://CLIENTDOMAIN/images/filter.png
    https://CLIENTDOMAIN/images/group.png
    https://CLIENTDOMAIN/images/graph.png
    https://CLIENTDOMAIN/images/hours.png
    https://CLIENTDOMAIN/images/information.png
    https://CLIENTDOMAIN/images/left.png
    https://CLIENTDOMAIN/images/lock.png
    https://CLIENTDOMAIN/images/loginInformation.png
    https://CLIENTDOMAIN/images/minus.png
    https://CLIENTDOMAIN/images/more.png
    https://CLIENTDOMAIN/images/notes.png
    https://CLIENTDOMAIN/images/notes1.png
    https://CLIENTDOMAIN/images/person.png
    https://CLIENTDOMAIN/images/person1.png
    https://CLIENTDOMAIN/images/plus.png
    https://CLIENTDOMAIN/images/Remove.png
    https://CLIENTDOMAIN/images/right.png
    https://CLIENTDOMAIN/images/search.png
    https://CLIENTDOMAIN/images/text.png
    https://CLIENTDOMAIN/images/time.png
    https://CLIENTDOMAIN/images/timesheet.png
    https://CLIENTDOMAIN/images/upArrow.png
    https://CLIENTDOMAIN/images/user.png
    https://CLIENTDOMAIN/images/usercheckSelected.png
    https://CLIENTDOMAIN/images/weekly.png
    https://CLIENTDOMAIN/images/daily.png
    https://CLIENTDOMAIN/images/weekly1.png
    https://CLIENTDOMAIN/images/daily1.png
    https://CLIENTDOMAIN/images/checkOut.png
    https://CLIENTDOMAIN/images/checkIn.png
    https://CLIENTDOMAIN/images/check.png
    https://CLIENTDOMAIN/images/telephone.png
    https://CLIENTDOMAIN/images/ajax-loader.gif
    https://CLIENTDOMAIN/images/expandArrow.png
    https://CLIENTDOMAIN/images/collapseArrow.png
    https://CLIENTDOMAIN/images/sign.png
    https://CLIENTDOMAIN/images/signedIcon.png
    https://CLIENTDOMAIN/images/unsign.png
    https://CLIENTDOMAIN/images/addsign.png
    https://CLIENTDOMAIN/images/sideArrow.png
    https://CLIENTDOMAIN/images/downArrow.png
    https://CLIENTDOMAIN/images/sideArrow2.png
    https://CLIENTDOMAIN/images/qty.png
    https://CLIENTDOMAIN/images/qty1.png
    https://CLIENTDOMAIN/images/extra.png
    https://CLIENTDOMAIN/images/extra1.png
    https://CLIENTDOMAIN/images/noHours.png
    https://CLIENTDOMAIN/images/sigCheckYes.png
    https://CLIENTDOMAIN/images/sigCheckNo.png
    https://CLIENTDOMAIN/images/userSigYes.png
    https://CLIENTDOMAIN/images/userSigNo.png
    https://CLIENTDOMAIN/images/bothSigYes.png
    https://CLIENTDOMAIN/images/empSigYes.png
    https://CLIENTDOMAIN/images/empSigNo.png
    https://CLIENTDOMAIN/images/deleteArrow.png
    https://CLIENTDOMAIN/images/target.png
    https://CLIENTDOMAIN/images/graph1.png
    https://CLIENTDOMAIN/images/transferHours.png
    https://CLIENTDOMAIN/images/percentCalc.png
    https://CLIENTDOMAIN/images/defaults.png
    https://CLIENTDOMAIN/images/workOrder.png
    https://CLIENTDOMAIN/images/workOrder1.png
    https://CLIENTDOMAIN/images/footerRight.png
    https://CLIENTDOMAIN/images/footerLeft.png
    https://CLIENTDOMAIN/images/equipCheck.png
    https://CLIENTDOMAIN/images/equipCheck1.png
    https://CLIENTDOMAIN/images/activeTab.png
    https://CLIENTDOMAIN/images/inactiveTab.png
    https://CLIENTDOMAIN/images/prefs.png
    https://CLIENTDOMAIN/images/ServiceDetail.png
    https://CLIENTDOMAIN/images/Rehab.png
    https://CLIENTDOMAIN/images/detailReportClient.png
    https://CLIENTDOMAIN/images/detailReportDate.png
    https://CLIENTDOMAIN/images/detailReportTime.png
    https://CLIENTDOMAIN/images/memoUp.png
    https://CLIENTDOMAIN/images/memoDown.png
    https://CLIENTDOMAIN/images/rehabUp.png
    https://CLIENTDOMAIN/images/rehabDown.png
    #Branding Images
    images/AppIcon.png
    images/AppIconTransparent.png
    
    https://CLIENTDOMAIN/js/jQuery/images/ajax-loader.png
    https://CLIENTDOMAIN/js/jQuery/images/form-check-off.png
    https://CLIENTDOMAIN/js/jQuery/images/form-check-on.png
    https://CLIENTDOMAIN/js/jQuery/images/form-radio-off.png
    https://CLIENTDOMAIN/js/jQuery/images/form-radio-on.png
    https://CLIENTDOMAIN/js/jQuery/images/icons-18-white.png
    https://CLIENTDOMAIN/js/jQuery/images/icons-36-white.png
    https://CLIENTDOMAIN/js/jQuery/images/icon-search-black.png
    
    #javascript
    #https://CLIENTDOMAIN/js/ALDB/ALDB-min.js 
    https://CLIENTDOMAIN/js/ALDB/ALDB.js 
    https://CLIENTDOMAIN/js/ALDB/wsproxy.js
    config.js
    
    https://CLIENTDOMAIN/js/jQuery/jquery.mobile-1.0.min.js
    https://CLIENTDOMAIN/js/jQuery/jquery-1.7.1.min.js
    
    https://CLIENTDOMAIN/js/utilities/mdetect.js
    https://CLIENTDOMAIN/js/utilities/jquery.crypt.js
    https://CLIENTDOMAIN/js/utilities/jquery.xml2json.pack.js
    
    https://CLIENTDOMAIN/js/simpleWeather/jquery.simpleWeather.js
    https://CLIENTDOMAIN/js/exif.js
    
    # UNCOMMENT NEXT FOUR LINES TO RELEASE
    https://CLIENTDOMAIN/js/ALUI/UXCore.js
    https://CLIENTDOMAIN/js/ALUI/UXTime.js
    https://CLIENTDOMAIN/js/ALUI/UXProd.js
    https://CLIENTDOMAIN/js/ALUI/UXMed.js
    
    https://CLIENTDOMAIN/js/sigpad/jquery.signaturepad.min.js
    https://CLIENTDOMAIN/js/sigpad/json2.min.js
    https://CLIENTDOMAIN/js/sigpad/excanvas-r3.min.js
    https://CLIENTDOMAIN/js/sigpad/excanvas-r71.min.js
    
    https://CLIENTDOMAIN/js/iscroll/src/iscroll.js
    https://CLIENTDOMAIN/js/iscroll/add2home.js
    
    https://CLIENTDOMAIN/js/jQuery/jQuery.ui.datepicker.js
    https://CLIENTDOMAIN/js/jQuery/jquery.ui.datepicker.mobile.js
    
    #css
    # UNCOMMENT NEXT LINE TO RELEASE
    https://CLIENTDOMAIN/css/ALUX.css
    https://CLIENTDOMAIN/css/add2home.css
    #https://CLIENTDOMAIN/js/jQuery/jquery.mobile-1.0a4.1.min.css
    https://CLIENTDOMAIN/js/jQuery/jquery.mobile-1.0.min.css
    
    https://CLIENTDOMAIN/js/sigpad/jquery.signaturepad.css
    
    https://CLIENTDOMAIN/js/jQuery/jquery.mobile.datepicker.css
    
    NETWORK:
    https://CLIENTDOMAIN:443/OURBRAND/WebSyncProvider.asmx
    cache.manifest
    http://maps.gstatic.com/
    http://csi.gstatic.com/
    http://maps.google.com/
    http://maps.googleapis.com/
    http://query.yahooapis.com/
    http://l.yimg.com/
    # COMMENT NEXT LINE TO RELEASE
    #*
    #v635421628124296068
    
    加载缓存清单和所有webapp标题的HTML:

    <html lang="en" manifest="cache.manifest">
        <head>
            <title>BRAND</title>
            <!-- Enable the homescreen app on mobile devices -->
            <meta name="apple-mobile-web-app-capable" content="yes" />
            <meta name="mobile-web-app-capable" content="yes" />
    
            <!-- Enable the App Icon -->
            <link rel="icon" type="image/png" sizes="196x196" href="images/AppIcon.png">
            <link rel="apple-touch-icon" href="images/AppIcon.png">
            <link rel="apple-touch-startup-image" href="https://CLIENTDOMAIN/OURBRAND/images/iPhoneStartup.png">
    
            <meta name="apple-mobile-web-app-status-bar-style" content="black" />
            <meta name="viewport" content="width=device-width" />
            <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, height=device-height, width=device-width" />
    
            <meta http-equiv="content-language" content="en">
    
            ...
    
    
    烙印
    ...
    

    我不知所措,应用程序缓存很难按原样调试,没有这些奇怪的问题。请让我知道,如果我可以提供更多的信息,以帮助别人指出我在正确的方向

    在清单中为https定义资源路径时,仅使用相对路径以遵守同源策略:

    “通过SSL,清单中的所有资源必须遵守同一来源策略。 也就是说,所有路径都必须是相对的,或者指向与当前页面位于同一主机和端口上的资源

    Google Chrome是个例外,它在这方面不遵循规范。通过SSL,Chrome将加载来自不同来源的资源,只要它们仍然通过SSL提供服务。”

    此外,请确保您的证书有效


    尝试设置服务器设置,以完全禁用将通过appcache提供服务的文件的标准缓存,因为有时浏览器在更新appcache时仍会从缓存中加载“更新”的文件。这发生在我身上。设置过期日期标题等,然后重试it@Markasoftware不幸的是,它已经这样设置,缓存关闭,所有内容立即过期。不过,我会检查所有设置并报告。我想我把2014年发布的这个问题的答案搞砸了,所以我把它删除了。但归根结底,这就是问题的症结所在。我们使用//而不是http://或https://从所有内容中剥离协议,并确保所有内容都与html&manifest文件加载在同一个域和机器上。我们也有一些无效证书的问题,这100%导致了safari的问题,如果不是Chrome的话。感谢您更新此问题,以便我可以插话并关闭它!如果你们能批准我的答案,或者支持我的投票,那对我来说,赢得代表席位将是非常有帮助的。:-)很高兴你能解决这个问题!经验有时是一位痛苦的老师,但这些经验往往也是我们学到的教训。干杯