我正在使用“less-rails”宝石来减少与我的rails应用程序的集成。
在我的“applications.css.less”文件中,我将其他LESS文件导入其中。当我对任何导入的文件进行更改时,我需要重新保存“application.css.less”文件,以便它获取更改。
如果更改了其中一个导入的文件,如何自动重新编译“applications.css.less”文件?
答案 0 :(得分:1)
找到了这里提到的解决方案:https://github.com/metaskills/less-rails/issues/80
gem 'less-rails', github: 'dv/less-rails', branch: 'fix-import-dependencies'
不会使用livereload,所以我回到cmd + r
答案 1 :(得分: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>
答案 2 :(得分:0)
我的其他较少的文件没有通过资产管道。一旦我修复了它并将它们导入我的“application.css.less”文件,“application.css.less”就会在其他文件发生变化时自动重新编译。