【问题标题】:Serving local file:/// links and AppCache提供本地文件:/// 链接和 AppCache
【发布时间】:2015-10-19 21:56:37
【问题描述】:

我正在为我的洞穴俱乐部的成员制作一个网络应用程序,以搜索和查看洞穴调查笔记 PDF。它工作正常,我让 AppCache 为它的 web 版本工作。

但是,由于 PDF 文件很大且下载速度很慢,而且许多成员的本地计算机上的 PDF 文件来自网站获取它们的同一个 SVN,因此他们能够使用带有链接到他们选择的本地 SVN 文件夹。

设计目标:

  1. 该站点显示本地文件系统上 PDF 文件的链接
  2. 每当我向网站添加功能时,用户会在下次打开页面并连接到互联网时自动获取这些功能
  3. 但是在他们第一次打开页面后,网站就离线了。

遗憾的是,Web 浏览器似乎并不能同时支持这种有用的设计目标组合。

我可以通过让用户下载站点的副本、在 JS 中添加他们的本地 SVN 路径并在浏览器中打开他们的本地副本来满足 #1,这样file:/// 链接就可以工作。

我可以通过在服务器上拥有指向 JS 包的绝对链接来满足 #2。

我可以通过使用 AppCache 来满足 #3。

我认为我可以通过让本地文件系统上的页面副本具有 <html manifest="https://myserver.com/myapp.appcache"> 来变得聪明,但不幸的是,Chrome 似乎不允许本地文件使用托管在服务器上的应用程序缓存清单,因为对我来说似乎没有充分的理由。

有谁知道我可以满足所有 3 个目标的另一种方法吗?

也许我可以给我的朋友一些简单的程序/配置来拦截对https://myserver.com/some/folder 的网络请求,然后从他们本地文件系统上的文件夹中为它们提供服务?

【问题讨论】:

    标签: html local-storage offline auto-update html5-appcache


    【解决方案1】:

    安迪,

    我知道这篇文章有点老了,但在寻找与 AppCache 相关的其他内容时偶然发现了它。我的理解是 html 页面和清单必须位于同一个域中才能正常工作。所以我认为你需要修改你的设计:

    1. 创建一个 JavaScript 函数,作为用户输入其 PDF 本地副本路径的设置。将此信息存储在本地存储中。
    2. 为文档链接创建一个 html 模板页面。
    3. 创建一个 JavaScript 函数,用用户输入的任何文档和链接填充 html 模板页面。

    这样,用户在线访问您的应用程序,它使用 appcache 来存储自己和 JS 文件以供离线使用。要访问 PDF,用户单击设置按钮以启动页面以收集路径信息并将信息保存在本地存储中。然后,用户可以访问模板页面,该页面将填充他们输入的文档。

    这是对本地存储的一个很好的介绍:[http://www.smashingmagazine.com/2010/10/local-storage-and-how-to-use-it/]

    【讨论】:

    • 啊,所以我后来基本上确实实现了类似的东西。唯一的问题是浏览器通常不允许您打开file:/// 链接,除非您也通过file:/// 访问该页面。但是,有一个 Chrome 插件允许这样做,所以我让它只适用于 chrome。
    猜你喜欢
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多