0

使用 grunt-sw-precache,我正在尝试缓存我的应用程序:

'develop': {
        // staticFileGlobs: [
        //   'app/styles/**/*.css',
        //   'font/**/*.{woff,ttf,svg,eot}',
        //   'app/images/**/*.{gif,png,jpg}',
        //   'app/scripts/**/*.js',
        // ],
        staticFileGlobs: ['index.html','/app/**/*.{js,html,css,png,jpg,gif}'],
        stripPrefix: 'app',
        baseDir:'./',
        runtimeCaching: [{
          handler: 'networkFirst'
        }]
      },
    },

我总是得到:

Total precache size is about 0 B for 0 resources.

我的目录结构如下所示:

  projectRoot
      ______app
         __________images
         __________styles
         __________controllers
             __________jsFilesHere
             ___________app.js
             _____________config.js
             _____________index.html
             _____________sw.js

我需要缓存所有文件以使应用程序也可以脱机运行。为此,我需要缓存我的整个应用程序文件夹

我该如何改变这个

staticFileGlobs: ['index.html','/app/**/*.{js,html,css,png,jpg,gif}'],

能够让这个工作?

我尝试将其替换为:

静态文件Globs:[' '] 也是如此。但我得到了同样的信息。

正如建议的那样,我现在仅将 sw.js 存储在 app 文件夹中并已删除/

 'develop': {
        navigateFallback: '/index.html',   
        staticFileGlobs: ['scripts/**/*.js'],
        stripPrefix: 'app',
        baseDir:'./app',
        runtimeCaching: [{
          handler: 'networkFirst'
        }]
      },

但仍然没有任何改变

4

1 回答 1

0

默认情况下,所有 glob 模式都以当前工作目录为基础进行解释。您使用的两种模式是:

  • index.html,但index.html根据列出您共享的目录,您当前的工作目录中没有。
  • /app/**/*.{js,html,css,png,jpg,gif},其中不应包含/主角。

尝试从通配符 glob 模式中删除前导/字符,并找出为什么你index.html没有出现在输出目录中,这有望为你解决问题。

(我不确定是什么baseDir: './'意思,因为这不是 .支持的选项之一sw-precache。)

于 2018-01-19T19:29:55.553 回答