减少css绝对路径无法正常显示

时间:2013-10-23 10:14:20

标签: php css less

问题是我设置了一个带有图像绝对路径的变量,但是当我用.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文件中写入路径,它将按原样显示。

1 个答案:

答案 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}");}

我希望这会对别人有所帮助。