【问题标题】:Symfony - Insert values programatically into CSS filesSymfony - 以编程方式将值插入 CSS 文件
【发布时间】:2015-08-15 22:19:16
【问题描述】:

好的,这就是场景。我们有一个 Symfony2 项目,两个网站共享相同的核心代码,第二个网站只有自己的 App 文件夹,src 和 vendor 文件夹符号链接到“主”安装。这很好用,并且使用第二个应用程序文件夹中的特定参数,允许我们使用不同的数据库运行,从而为两家公司提供相同的技术解决方案。万岁:)

但是。我们显然希望通过 CSS 对它们进行不同的样式设置,这些值需要从数据库中获取。我意识到我们可以简单地对它们进行编码,但考虑到未来的项目,我们希望它们存在于数据库中,从而易于集中更新。

那么,问题是我们如何将这些来自数据库的值插入到 CSS 文件中?我研究了 SASS 等,这将是朝着正确方向迈出的一步,但这些值仍然在 CSS 文件中定义,而不是在它之外。

我们可以做一个动态的 CSS 文件,由 Twig 提供支持,但坦率地说,这是用大锤来破解的。

有没有人遇到过这个问题并找到了合适的答案?

【问题讨论】:

  • 我建议使用LessCSS (leafo.net/lessphp),你可以定义包含css属性值的变量,编译得到一个css文件。
  • 啊,这看起来很有希望 - 谢谢。当我进一步调查时,我会反馈。

标签: php html css symfony


【解决方案1】:

您可以创建一个在您的 css 文件夹中写入 css 文件的服务。 在数据库中进行任何更改时调用此服务。 (你可以为此做一个监听器)。

您也可以使用asseticBundle 来管理您所有的 css 文件。

【讨论】:

    【解决方案2】:

    我从未尝试过,但我认为您可以像渲染任何其他文件一样使用 Twig 渲染 css 文件。你只需要创建一个路由、一个控制器和一个视图。

    很抱歉没有阅读最后的规则.. 您可以在 css mysql-table 中添加日期时间戳。它改变了吗?渲染并保存您的 css 文件的新版本。否则跳过它。

    另一方面,Twig 尽可能多地使用缓存,那么问题是什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2014-03-03
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多