【问题标题】:PHP pass variable to LESS CSS or identify current environment in LESSPHP 将变量传递给 LESS CSS 或在 LESS 中识别当前环境
【发布时间】:2013-05-20 14:46:42
【问题描述】:

在我的 LESS CSS 文件中,我定义了一个 base-url:

@base-url: 'http://cdn.domain.com';

我现在需要根据我所处的环境动态切换基本 url。例如:

DEV: 'http://domain.com'
PROD: 'http://cdn.domain.com'

有没有办法直接通过 LESS 进行检查,或者有没有办法将此变量从 PHP 传递给 LESS?

【问题讨论】:

  • 您应该编译和缩小您的 LESS 文件以用于生产,就像​​您在生产中使用不同的 .ini 文件一样。
  • 我想我可以在部署时在 PHP 中进行简单的查找/替换,以设置正确的环境基础 URL。
  • 这根本不是我的意思。当您为不同的环境设置项目时,您会希望每个环境有不同的.ini 文件。对于少编译,您需要为每个环境设置不同的variables.less 文件,以便您可以在每个不同的环境中运行构建并为每个环境获取适当的输出。
  • 哦,我明白了,我从来没想过。我来看看。我对 LESS 和项目集成非常陌生

标签: php css less


【解决方案1】:

您可以创建两个文件,一个用于开发,一个用于生产,然后编译任何您需要的文件:

/* Production: production.less */
@base-url: 'http://cdn.domain.com';
@import "main.less"

/* Development: dev.less */
@base-url: 'http://dev.domain.com/files';
@import "main.less";

【讨论】:

  • 是的,这就是我要做的。谢谢!
【解决方案2】:

这是一种将 php 变量解析为更少文件的方法。

http://leafo.net/lessphp/docs/#setting_variables_from_php

【讨论】:

  • 谢谢,但我没有使用lessphp
  • 那么为什么不使用呢?如果你想以更少的价格发送一个 php 变量,那就是这样做的方法
  • 我不想仅仅为了那个特性集成一个不同的编译器。 @zzzzBov 的方法在我的情况下看起来好多了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 2023-03-16
  • 2013-12-29
  • 1970-01-01
相关资源
最近更新 更多