php - 在运行时编译时如何在 LESS PHP 中指定相对路径?

标签 php css laravel less lessphp

最近我开始使用 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 文件,一切正常。以下是包含字体的 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是直接编译到页面的,当我的页面有url的时候,

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 文件在开发过程中仍会快速更改。

最佳答案

只需从根目录指定您的字体文件即可。

@font-face{
   font-family: OpenSans-Regular;
   src: url('/myCSS/fonts/myFont.ttf'); 
}

关于php - 在运行时编译时如何在 LESS PHP 中指定相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344061/

相关文章:

php - 检测从 Android 应用程序调用的 URL

php - 将php日期时间存储在mysql数据库中

php - 有没有用PHP维护MySQL表结构的库?

css - 我怎样才能使以下代码与 IE6 兼容?

html - 如何在不溢出的情况下将百分比定义的宽度 div 放在响应图像后面

Laravel - 如何在 where 子句中编写多个条件?

php - Laravel 5 环境总是 'Production' 而实际上是 'Local'

php - file_get_contents 与 Lumen

php - 内爆php数组并导出到txt会创建重复值

html - td 之间的空间 - 再一次