Rails:对资产管道使用livereload

ruby-on-rails- CSS

凯西里

2020-04-03

Rails专家的快速提问...

使用Rails 3.0.x应用程序时,我经常使用Guard和LiveReload。但是,似乎在Rails 3.1中使用资产管道时,livereload守护程序不知道对Sass文件的更改应触发向浏览器发送新的CSS。

是否有人在资产管道中使用LiveReload?如果是这样,您如何使其工作?

谢谢!

第3906篇《Rails:对资产管道使用livereload》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
Tom理查德逆天 2020.04.03

我发现以下内容也可以很好地工作:

guard :livereload do
  watch(%r{^app/.+\.(erb|haml|js|css|scss|sass|coffee|eco|png|gif|jpg)})
  watch(%r{^app/helpers/.+\.rb})
  watch(%r{^public/.+\.html})
  watch(%r{^config/locales/.+\.yml})
end

这不是您运行时生成的默认代码,guard init livereload因为某些原因无法与sass导入一起正常运行。

伽罗理查德 2020.04.03

正如@mirko在其评论中提到的那样,不赞成在scss文件上使用额外的.css。因此,添加该方法不是一个很好的解决方案,而且我已经体验到,简单地添加scss扩展名会强制重新加载页面。

所以我发现这可行:

watch(%r{(app|vendor)(/assets/\w+/(.+)\.(scss))}) { |m| "/assets/#{m[3]}.css" }`

我的理解是,这会将scss文件映射到已编译的css文件。我希望它也适用于无礼。

资料来源:Github Issue

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android