Как да кеширате с манифест Node.js сайт

Във връзка с моя ранен въпрос за това как да добавя кеш на манифеста във възел .js, въпросът ми сега е свързан с това как да кеширам HTML, генериран от node.js. Тъй като нямахме физически файл като в php (index.php), не можем да кешираме такъв тип файлове.

Как можем да кешираме "несъществуваща" страница? Просто добавяне в кеша:

    CACHE MANIFEST

    CACHE:
    # plain files to cache
    /javascripts/client.js
    /stylesheets/style.css
    /stylesheets/style.styl
    # generated files like /
    /
    /content

Някаква идея как да се реши този проблем?

Благодаря!

Решение:

Добавете рутер, за да върнете файла cache.manifest с правилния mime-тип:

app.get("/offline.manifest", function(req, res){
  res.header("Content-Type", "text/cache-manifest");
  res.end("CACHE MANIFEST");
});

Намерено в stackoverflow


person enedebe    schedule 01.02.2012    source източник


Отговори (1)


Кеширащият манифест изброява URL адреси, които трябва да бъдат кеширани. Клиентът, осъществяващ достъп до тези URL адреси, няма информация дали това са статични html файлове върху Apache или динамично съдържание, генерирано от node.js или нещо друго.

Вие основно инструктирате клиента:

  1. Прочетете моя списък с URL адреси
  2. Преминете през всеки url
  3. Изтеглете отговора и го съхранявайте на сигурно място
  4. Проверете отново моя cache.manifest, ако се е променил и след това преминете към стъпка 1

Така че, докато вашите данни, генерирани от node.js, са достъпни чрез URL, няма проблем да ги дефинирате като ред в манифеста на кеша.

И ако се притеснявате „как ще разбера кои URL адреси има“, винаги можете да генерирате файла cache.manifest програмно от самия node.js – но не забравяйте да обслужвате правилния тип съдържание text/cache-manifest

person Jan Wikholm    schedule 01.02.2012