1

問題は、画像への絶対パスで変数を設定することですが、変数を .less ファイルの値に置き換えると、正しく表示されません。

$mediaUrl = explode('://',Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA));
$lessClass->setVariables(array('BASE_URL_MEDIA' => $mediaUrl[1]));
// $mediaUrl[1] = 'mysite.domain.com/media/ and if I check $lessClass the variable is set properly
try {
    return $lessClass->compileFile($filePath);
} catch (Exception $e) {
    return '';
}

コンパイル後に出力がこれである理由を理解するのに何時間も苦労してきました

.main-container {background-image:~"url('http://@{BASE_URL_MEDIA}someDir/anotherDir/')";}
// returns url('http://mysitesomeDir/anotherDir/'

最初の「。」まで文字列をロードします。誰か助けてくれませんか?

注: .less ファイルにパスを記述すると、そのまま表示されます。

4

1 に答える 1

1

私は自分の問題を解決することができました。ドキュメントを調べてみると、いくつかのアポストロフィが欠落していることがわかりました。

 $mediaUrl = "'" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "'";
    $lessClass->setVariables(array('BASE_URL_MEDIA' => $mediaUrl));

そして、私の .less ファイルで

.main-container {background-image: url("@{BASE_URL_MEDIA}someDir/anotherDir/@{MY_FILE}");}

これが他の人に役立つことを願っています。

于 2013-10-23T12:56:28.120 に答える