2016-01-12 2 views
1

Я использую appcache с неизменным index.html довольно долгое время. Это явно не указано в манифесте, но кэшировано в любом случае как главная запись.AppCache не swap index.html

Теперь index.html изменения и я бегу в эту проблему:

Все ресурсы извлекаются и кэшируются правильно, однако запись мастер остается старым и веб-брейки. Я попытался листинг index.html явно в манифесте. Chrome DevTools показывает дилемму очень хорошо:

Chrome devtools

Старая index.html остается мастером. Новый элемент кэшируется явно, но не заменяется.

Эта ошибка происходит, как описано в Chrome. FF и Safari работают нормально. IE 11 отображает «Ресурс не существует на сервере» и «Ошибка факсимильной атаки Appcache».

манифест выглядит следующим образом:

CACHE MANIFEST 
# vX.X.X 

NETWORK: 
* 

CACHE: 

index.html 
app.js 
app.json 
favicon.ico 
... (+100 more files) 
+0

Можете ли вы показать нам свой файл манифеста ? –

+0

Обновленный вопрос, спасибо –

ответ

0

Нашел:

Чтобы исправить рамочную ошибку, я был на сторону сервера перенаправления для добавления строки запроса параметров. Подкачка appcache от https://example.com до https://example.com?myparam сломала приложение в Chrome и IE.

0

Столкнувшись с той же проблемой и решив ее без манипуляций на стороне сервера.

Так все, что вам нужно, это добавить скрипт в <head> тег:

<script type="text/javascript"> 
    window.applicationCache.addEventListener("updateready", 
     (event) => { window.location.reload(true) }); 
</script> 

Некоторые объяснения вы можете найти в моем посте здесь, если вы заинтересованы: AppCache doesn't swap index.html file

Смежные вопросы