cssの前処理にsass(http://sass-lang.com/ )の代わりにless( http://lesscss.org/ )を使用したいと思います。静的リソース用のCookieなしドメインのセットがあります。例:0.mydomain.com、1.mydomain.com、2.mydomain.comなど。コンパイルされたCSS出力にCookieなしのドメインが挿入されるように、lessを使用してCSSをコンパイルしたいと思います。@functionを使用してsassドキュメントでカスタム関数を作成するこの機能を見つけました。同等のものはより少なく存在しますか(私は見つけることができません)?ファイル名をCookieなしのドメイン(X.mydomain.com)に対応する数値Xに変換するハッシュアルゴリズムを実行する関数が必要です。より少ない使用でこれをどのように行うでしょうか?
以下の例は、説明のために考案されたものです。
my.lessファイル:
@function domainX(path) {
//configs
var protocol = "http://";
var domain = ".mydomain.com"
var N = 4; //4 cookieless domains
var sum = 0;
var s = path.substr(path.lastIndexOf("/") + 1);
for (var i = 0; i < s.length; i++) {
sum += s[i].charCodeAt();
}
@return protocol + (sum % N) + domain + path;
}
.myItem {background-image:url(domainX('/images/background.jpg')) }
コンパイルされた出力を生成します
.myItem {background-image:url('http://1.mydomain.com/images/background.jpg') }
SASSの例は http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#functionsです。
「機能ディレクティブ」のセクションを参照してください
LESSドキュメントの最も近い例を以下に示しますが、base-urlを作成する関数はありません。
@base-url: "http://assets.fnord.com";
background-image: url("@{base-url}/images/bg.png");
たぶん、ソリューションのLESS + Node.js部分もありますか?
ありがとう!