问题是我设置了一个带有图像绝对路径的变量,但是当我用.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文件中写入路径,它将按原样显示。
答案 0 :(得分:1)
我设法解决了我的问题。 透过documentation我发现我错过了一些撇号。
$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}");}
我希望这会对别人有所帮助。