Css 如何在Symfony2中根据您访问该站点的url获取特定于客户端的配色方案

Css 如何在Symfony2中根据您访问该站点的url获取特定于客户端的配色方案,css,dynamic,stylesheet,symfony,twig,Css,Dynamic,Stylesheet,Symfony,Twig,我们在Symfony2中有一个单一的webinterface,许多用户都在使用它 客户。 每个客户端通过不同的URL进入我们的站点。 例如: 客户A从clientA.our-domain.com进入 客户端B从clientB.our-domain.com进入 客户端C甚至可能从clientC.com加入,即使用他们自己选择的域而不是我们的子域 然而,不管他们使用的URL是什么,他们最终的结果都是一样的 机器:我们的网站 现在我们对所有的CSS都使用相同的CSS,不管是哪一个 客户如果我们能为

我们在Symfony2中有一个单一的webinterface,许多用户都在使用它 客户。 每个客户端通过不同的URL进入我们的站点。 例如:

  • 客户A从clientA.our-domain.com进入
  • 客户端B从clientB.our-domain.com进入
  • 客户端C甚至可能从clientC.com加入,即使用他们自己选择的域而不是我们的子域
然而,不管他们使用的URL是什么,他们最终的结果都是一样的 机器:我们的网站

现在我们对所有的CSS都使用相同的CSS,不管是哪一个 客户如果我们能为客户设计样式表,我们将非常高兴 每个客户端都有特定于客户端的配色方案。 我不想为每个客户端设置单独的Web服务器,所以我 希望动态选择样式表

现在,在HTTP“主机”头中可以看到客户端使用的URL, 正确的。 例如,在app.php中,是否可以使用它来设置一些全局变量 哪个定义了客户机? Twig可能会在主模板中读取此变量并决定使用哪个变量 基于它使用的样式表,也许

另外,我们应该使用css变量吗?这可能比为每个客户机保留完整的样式表“克隆”更好,只要颜色发生变化

综上所述:

  • Symfony2中是否可以使用“主机”HTTP头向Twig指示要使用的样式表
  • 我们应该使用CSS变量来识别方案中的颜色,还是有更好的方法
提前谢谢


Dieter

就个人而言,我更喜欢为每个站点使用一个特殊的CSS文件(包含样式,每个站点的样式不同,比如颜色或背景图像)。例如,
网站clientA.our domain.com.css

然后你可以用这样的东西:

<link rel="stylesheet" type="text/css" 
      href="/path/to/css/site-{{ app.request.host }}.css" />

{%if-app.request.host位于['site-clientA.our domain.com'、'site-clientB.our domain.com'、'site-clientC.our domain.com']%}
{%elseif…%}
...
{%endif%}

谢谢您的回复。使用url是idd的发展方向。不幸的是,将所有变量放在一个样式表中对于我们的设计是不够的。在我们的例子中,这将导致一个巨大的、不可管理的css文件。使用CSS变量可能是一个解决方案?然后,我们可以使用url方法引用.css文件,并将所有不同颜色的内容放在该文件中,并将其用作其他css文件中的变量()更大的问题是,在Symfony中使用.css变量的最佳方法是什么?
{% if app.request.host in ['site-clientA.our-domain.com', 'site-clientB.our-domain.com', 'site-clientC.our-domain.com'] %}
  <link rel="stylesheet" type="text/css" 
        href="/path/to/css/site-style1.css" />
{% elseif ... %}
  ...
{% endif %}