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 回答