具有基本身份验证的HTML5脱机应用

时间:2012-10-25 19:32:27

标签: ruby-on-rails-3 asset-pipeline basic-authentication html5-appcache

我正在尝试使用HTML5 Appcache和Rack :: Offline使Rails 3项目脱机工作。我正在使用Rails 3 Asset Pipeline,它提供了额外的摘要(application-dfla33q23jad.js)来保持清单文件的新鲜感。从理论上讲,只要资产发生变化,清单也会发生变化,包括资产的新消化版本。

(application.manifest)

CACHE MANIFEST
assets/application-785189fec63978372c177135a521e081.js
assets/application-c69de8169df1ae42a1a4dcafdc5a1af4.css
assets/application.css
assets/application.js

浏览器检测到新清单,新资产在后台缓存,但html不会更新以反映更新的资产。几乎所有资产都被缓存,除了主条目。请注意以下js和css链接如何与新版本具有相同的摘要,从而在刷新时产生404(未找到)。

(index.html的)

<html manifest="/application.manifest">
<head>
  <title>Project</title>
  <link href="/assets/application-cb58254cec63978372c177135a521e081.js" media="all" rel="stylesheet" type="text/css" />
  <script src="/assets/application-918b26fdf1ae42a1a4dcafdc5a1af4.css" type="text/javascript"></script>
</head>
<body>
  <p> Content </p>
</body>
</html>

我首先想到的是将html明确地添加到清单中,以便html更新其余的资产。

CACHE MANIFEST
index.html
assets/application-785189fec63978372c177135a521e081.js
assets/application-c69de8169df1ae42a1a4dcafdc5a1af4.css
assets/application.css
assets/application.js

我相信这会有效,但index.html受基本身份验证保护,因此在尝试更新appcache时会抛出401(未经授权)错误。这引出了我的问题:

  1. 当显式条目更新时,appcache是​​否应该更新主条目(index.html)?
  2. appcache是​​否提供了一种方法来包含使用基本身份验证保护的条目?
  3. appcache请求不应该使用用户输入的相同凭据来查看页面吗?

0 个答案:

没有答案