HTML 5 Кэш приложения IE10/11 Неустранимая ошибка AppCache при работе Chrome и Android
Я создал простое тестовое приложение ASP.NET MVC, пытаясь использовать кэш приложений. Похоже, что Chrome работает нормально, однако в IE 10/11 при загрузке кеша мы получаем следующие сообщения. Любые идеи или образец, где это работает?
Я пробовал несколько вещей, включая файл меньшего размера для загрузки. Я видел, что есть предел, который может вызвать аналогичную ошибку.
манифест
CACHE MANIFEST
#VERSION 9
CACHE:
/Content/site.css
NETWORK:
*
FALLBACK:
Индекс
@{
Layout = null;
}
<!DOCTYPE html>
<html manifest="home/manifest">
<head>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
<meta http-equiv="EXPIRES" content="0" />
<meta http-equiv="PRAGMA" content="NO-CACHE" />
<title>Offline Test</title>
<link rel="Stylesheet" href="/Content/site.css"
type="text/css" />
<script src="/Scripts/jquery-1.10.2.min.js"
type="text/javascript"></script>
<script>
$(function () {
});
</script>
</head>
<body>
</body>
</html>
MVC Controller
[OutputCache(Duration = 0, NoStore = true)]
public class HomeController : Controller
MVC Action
public ContentResult Manifest()
{
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
return new ContentResult
{
ContentType = "text/cache-manifest",
Content = RenderPartialViewToString("Manifest"),
ContentEncoding = System.Text.Encoding.UTF8
};
// Doesn't work. Content type is still html
//Response.ContentType = "text/cache-manifest";
//Response.ContentEncoding = System.Text.Encoding.UTF8;
//Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
//return PartialView();
}
Я попытался добавить вызов SetNoStore() в обработчик Application_EndRequest, но это не имело никакого значения.
public override void Init()
{
base.Init();
EndRequest += Application_EndRequest;
}
private void Application_EndRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.Cache.SetNoStore();
}
Спасибо!
1 ответ
Решение
Удалить no-store
в Cache-Control
-Header, он ломает appCache в IE10/IE11 (см. /questions/24118923/kak-otlazhivat-ie11-appcache/24118925#24118925).