使用后卫重新加载和保护罗盘似乎发生冲突

时间:2013-04-18 10:09:15

标签: compass-sass guard livereload

我正在尝试使用守卫livereload和守卫指南针。这是我的文件

示例Guardfile

    # More info at https://github.com/guard/guard#readme

    guard 'compass' do
      watch('^sass/(.*)\.s[ac]ss')
    end

    guard 'livereload' do
      watch(%r{.+\.(css|html|js)$})
    end

    # This will concatenate the javascript files specified in :files to public/js/all.js
    #guard :concat, type: "js", files: %w(), input_dir: "public/js", output: "public/js/all"

    #guard :concat, type: "css", files: %w(), input_dir: "public/css", output: "public/css/all"

    #guard 'uglify', :destination_file => "public/javascripts/application.js" do
    #  watch (%r{app/assets/javascripts/application.js})
    #end

当我开始防范,没有启用chrome live reload扩展时,我的sass文件被编译并且运行良好。

但是当我启用livereload扩展时,我的终端说浏览器已连接,然后当我在我的sass文件中进行更改时,没有任何反应(页面重新加载,也没有编译sass文件)。

有没有人有任何想法?

2 个答案:

答案 0 :(得分:1)

目前,我正在窗户中推出两个终端,一个在我做指南针监视的地方,一个在我守卫的地方(我评论了GuardFile的指南针部分)。

如果有人有更好的解决方案

答案 1 :(得分:1)

这就是我如何做到并完美运作。

    puts "Using default guard file."

group :development do

  if File.exists?("./config.rb")
    # Compile on start.
    puts `compass compile --time --quiet`
    # https://github.com/guard/guard-compass
    guard :compass do
      watch(%r{(.*)\.s[ac]ss$})
    end
  end

  guard :livereload, :host => '127.0.0.1', :port => '35729', :grace_period => 0.5 do
    watch(%r{.+\.(css|js|html?|php|inc|theme)$})
  end

end

所有这一切都告诉Compass我的config.rb在哪里...哪个位于我保存Guardfile的网站底部。然后它有罗盘编译SCSS。 不确定你的情况,但在我的情况下,我需要设置主机和端口,使其顺利运行。但基本上看守会看到一个变化,一旦罗盘输出css文件LiveReload注意到变化,然后重新加载该文件。很简单。

我确定你已经知道但是将所有正确的Gems添加到你的Gemfile中,在你的项目上运行'bundle'然后使用$ guard

启动Guard

在浏览器中确保点击LiveReload按钮,它会在终端中告诉您浏览器已连接并离开。

希望有所帮助。