【问题标题】:Error using LiveReload on virtual machine with grunt在带有 grunt 的虚拟机上使用 LiveReload 时出错
【发布时间】:2014-08-07 08:40:21
【问题描述】:

我正在使用 vagrant/puphpet (ubuntu 12.04) 设置的虚拟机。 我成功设置了 grunt 和 contrib-watch。我安装了 chrome 扩展...这里指定的所有内容:https://github.com/gruntjs/grunt-contrib-watch#live-reloading

我的 Gruntfile 如下:

module.exports = function(grunt)
{

require('load-grunt-tasks')(grunt);

grunt.initConfig({
  compass: {                  // Task
    dist: {                   // Target
      options: {              // Target options
        sassDir:        'sass',
        cssDir:         'css',
        environment:    'development',
        httpPath:       '/',
        imagesDir:      'img',
        relativeAssets:  true
      }
    }
  },
watch: {
    options: { livereload: true },
    sass: {
        files: ['sass/**/*.scss'],
        tasks: ['compass'],
        options: { spawn: false }
    }
}
});

grunt.registerTask('default', ['compass']);
}

我运行命令“grunt watch”,它会正确处理我的 sass。但在 Chrome 的控制台中,我收到以下错误:

GET http://127.0.0.1:35729/livereload.js?ext=Chrome&extver=2.0.9
net::ERR_CONNECTION_REFUSED  injected.js:116

如果我在视图中手动添加脚本,我仍然会收到错误消息:

GET http://localhost:35729/livereload.js net::ERR_CONNECTION_REFUSED 

知道这个错误可能来自哪里以及为什么它没有加载脚本吗?

【问题讨论】:

    标签: javascript gruntjs ubuntu-12.04 livereload grunt-contrib-watch


    【解决方案1】:

    你的 gruntfile 看起来不错。

    您的虚拟机似乎拒绝连接。确保实时重新加载端口在 iptables 中打开。

    在 Ubuntu 中,只需使用 ufw 即可完成:

    sudo apt-get install ufw
    sudo ufw enable
    sudo ufw allow 35729/tcp
    

    【讨论】:

    • 太棒了!这解决了我的问题......对于其他人,我应该提到我使用 puPHPet 创建我的虚拟机,我为我的机器定义了一个不同的 IP(192.168.100.100)......所以localhost:35729/livereload.js 不起作用,但是 ttp ://192.168.100.100:35729/livereload.js 确实
    • 很高兴我能帮上忙。如果您使用的是 Chrome,请查看名为 Rearm 的扩展程序。
    • 小心点,它把我锁在我的 vagrant box 外面,现在 ssh 超时,这个 box 不能再重新加载了。
    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2014-09-10
    • 2013-09-05
    相关资源
    最近更新 更多