带有angular的Html5脱机应用程序无法脱机工作
我有一个带有angularJs、Breeze和Asp.NETMVC的单页html5离线应用程序。该应用程序旨在将所有文件存储在缓存中,然后离线工作。我们有一个清单文件,其中列出了应用程序需要的所有文件,包括用于插入主页的所有模板。要加载模板,我们使用标准的角度路线。当连接到服务器时,应用程序工作正常,这是因为每次angular获取模板时,即使文件在本地缓存中,它也会从服务器获取模板。一旦Angular获取了一次模板,如果再次加载相同的url,它将正常工作并从本地缓存加载 下面是我们的缓存清单示例(我已尝试删除Appendhash) 我已经检查了chrome的缓存,所有的文件都在那里 下面是我们的标准路线配置带有angular的Html5脱机应用程序无法脱机工作,html,angularjs,caching,html5-appcache,application-cache,Html,Angularjs,Caching,Html5 Appcache,Application Cache,我有一个带有angularJs、Breeze和Asp.NETMVC的单页html5离线应用程序。该应用程序旨在将所有文件存储在缓存中,然后离线工作。我们有一个清单文件,其中列出了应用程序需要的所有文件,包括用于插入主页的所有模板。要加载模板,我们使用标准的角度路线。当连接到服务器时,应用程序工作正常,这是因为每次angular获取模板时,即使文件在本地缓存中,它也会从服务器获取模板。一旦Angular获取了一次模板,如果再次加载相同的url,它将正常工作并从本地缓存加载 下面是我们的缓存清单示例
.config(["$routeProvider", function ($routeProvider) {
'use strict';
// default root
$routeProvider.when("/", {
controller: "toriga.jobsController",
templateUrl: "templates/jobs.html"
});
$routeProvider.when("/notfound/", {
templateUrl: "templates/notfound.html"
});
$routeProvider.when("/epc/:id", {
controller: "toriga.epcController",
templateUrl: "templates/epc.html"
});
一些路由具有参数
我们真的很困惑,为什么angular不从应用程序缓存中获取模板,为什么一旦您访问了页面(例如“epc”),如果您再次导航到“epc”,它就会按预期工作,而不会转到服务器
非常感谢解决了
问题在于清单是区分大小写的,因此角度路由中的地址应该与maninfest中的条目完全匹配。比如说
//默认根
$routeProvider.when("/", {
controller: "toriga.jobsController",
templateUrl: "templates/jobs.html"
});
应与清单条目匹配:
@Url.Content("~/templates/jobs.html")
@Url.Content("~/templates/jobs.html")