Как кэшировать с манифестом сайта Node.js

В связи с моим ранним вопросом о том, как добавить кэш манифеста в node .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