Grunt livereload不显示ssi更改

时间:2015-01-30 16:59:56

标签: gruntjs ssi livereload grunt-contrib-watch

我正在使用connect-include

的咕噜声

我的页面渲染得很完美,但是当我更改ssi中包含的模板(例如/templates/*.html)时,我的页面无法通过对模板文件的新更改进行更新。我的页面重新加载,但使用旧的HTML。可能我的监视任务是在观察index.html并且没有看到对文件进行任何更改

这是我的连接设置:

connect: {
      options: {
        port: 9000,
        open: true,
        livereload: 35729,
        // Change this to '0.0.0.0' to access the server from outside
        hostname: 'localhost'
      },
      livereload: {
        options: {
          middleware: function(connect) {

            return [
              connect.static('.tmp'),
              ssInclude(config.app),
              connect().use('/bower_components', connect.static('./bower_components')),
              connect.static(config.app)
            ];
          }
        }
      },

我的观看任务

livereload: {
        options: {
          livereload: '<%= connect.options.livereload %>'
        },
        files: [
          '<%= config.app %>/{,*/}*.html',
          '.tmp/styles/{,*/}*.css',
          '<%= config.app %>/images/{,*/}*'
        ]
      }

这是index.html示例

<html>
<body>
<!-- #include file="templates/header.html" -->
</body>
</html>

现在,当我更改header.html时,我的页面会重新加载,但我看不到header.html中所做的更改

我无法弄清楚如何解决这个问题,除了每次更改模板时编辑index.html文件

更新 弄清楚它可能有一些未修改的状态304,但我如何强制使用livereload修改index.html?

更新2 发现自己是一个解决方法,但这显然不是正确的方法:-) 每当我的一个模板更改

时,我就为index.html文件创建了一个复制任务
copy: {

      index: {
        expand: true,
        cwd: '<%= config.app %>',
        dest: '<%= config.app %>',
        src: ['*.html'],
        flatten: true
      }
}

这将改变文件的修改日期。我还添加了额外的监视任务以完成任务

watch: { 

      html: {
        files: ['<%= config.app %>/componenten/*.html', '<%= config.app %>/templates/*.html'],
        tasks: ['copy:index']
      }
}

是否有其他方法可以更改文件修改时间?

0 个答案:

没有答案