最近我开始使用LESS为多个项目创建通用CSS。因为它将在多个项目中使用,它作为git子模块包含在我当前的项目中,所有内容都放在一个文件夹中。所以整个项目文件看起来像这样:
myProject
app
//this is the code of my project
public
css
//storing some third party CSS like font awesome
fonts
//font files of third part CSS
myCSS
less
myStyle.less
fonts
myFont.ttf
Some Other files and folders
我正在使用laravel 4.2作为框架。起初我开始使用less.js在运行中编译LESS文件,一切正常。以下是包含字体的内容。
@font-face{
font-family: OpenSans-Regular;
src: url('../fonts/myFont.ttf');
}
但是,我发现在某些旧机器和移动设备上,处理速度不够快,以至于元素显示时没有风格。因此,为了解决这个问题,我决定使用LESS PHP在服务器端编译该文件。以下是我放在模板文件顶部的内容。 (其他每个页面都包含以下行)
<head>
<?php
require "lessc.inc.php";
$less = new lessc;
echo $less->compileFile("myStyle.less");
?>
//some other js and css to include
</head>
<body>
//page contents
</body>
它编译成功,但由于LESS直接编译到页面,当我的页面有网址时,
http://domain.com/public/myController/myPage/
它将在
中搜索字体文件http://domain.com/public/fonts/myFont.tff
应该在哪里
http://domain.com/public/myCSS/fonts/myFont.tff
如何使用PHP正确编译LESS文件?我不想更改LESS文件中的路径或将LESS文件放在子模块文件夹(即myCSS)之外,因为此样式文件将在许多其他项目中重用。我想在运行时编译,因为LESS文件在开发过程中仍会快速更改。
答案 0 :(得分:-1)
只需从根目录指定字体文件即可。
@font-face{
font-family: OpenSans-Regular;
src: url('/myCSS/fonts/myFont.ttf');
}