1

我正在使用“less-rails” gem 来减少与我的 rails 应用程序的集成。

在我的“applications.css.less”文件中,我将其他 LESS 文件导入其中。当我对任何导入的文件进行更改时,我需要重新保存“application.css.less”文件,以便它接受更改。

当其中一个导入的文件发生更改时,如何让“applications.css.less”文件自动重新编译?

4

3 回答 3

1

找到了这里提到的解决方案:https ://github.com/metaskills/less-rails/issues/80

gem 'less-rails', github: 'dv/less-rails', branch: 'fix-import-dependencies'

不会与 livereload 一起工作,所以我回到 cmd + r

于 2014-07-31T18:22:53.300 回答
0

这是一个老问题,不幸的是没有办法用原生方式做到这一点。LESS 编译器只监视修改过的文件。因此,如果您使用带有导入的文件,则需要修改并重新编译该文件。

在开发环境(使用javascript)中,您可以解决此问题,将其清除缓存:

  <link rel="stylesheet/less" type="text/css" href="/css/style.less"/>
  <script src="/js/less-1.1.5.min.js" type="text/javascript"></script>
  <script>
    less = {env:'development'};
    function destroyLessCache(pathToCss) { // e.g. '/css/' or '/stylesheets/'
      if (!window.localStorage || !less || less.env !== 'development') {
        return;
      }
      var host = window.location.host;
      var protocol = window.location.protocol;
      var keyPrefix = protocol + '//' + host + pathToCss;

      for (var key in window.localStorage) {
        if (key.indexOf(keyPrefix) === 0) {
          delete window.localStorage[key];
        }
      }
    }
    window.onload=destroyLessCache('/css/');
  </script>

参考:https ://github.com/cloudhead/less.js/issues/47

于 2012-08-25T13:07:19.177 回答
0

我的其他较少文件没有通过资产管道。一旦我修复了这个问题并将它们导入到我的“application.css.less”文件中,“application.css.less”就会在其他文件发生变化时开始自动重新编译。

于 2012-09-08T21:04:10.060 回答