1

Railsアプリへの統合を減らすために、「less-rails」gemを使用しています。

「applications.css.less」ファイルでは、他のLESSファイルをインポートしています。インポートされたファイルのいずれかに変更を加える場合、変更を取得するために「application.css.less」ファイルを再保存する必要があります。

インポートされたファイルの1つが変更されたときに、「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 に答える