0

我们在 Symfony2 中有一个 Web 界面,供许多客户使用。每个客户通过不同的 URL 进入我们的网站。例如:

  • 客户 A 从 clientA.our-domain.com 进入
  • 客户 B 从 clientB.our-domain.com 进入
  • 客户 C 甚至可能从 clientC.com 加入,即使用他们自己选择的域而不是我们的子域

然而,不管他们使用什么 URL,他们最终都在同一台机器上:我们的网站。

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

现在,在 HTTP 的“主机”标头中,可以看到客户端使用了哪个 URL,对吧。这可以用于(例如在 app.php 中)设置一些定义客户端的全局变量吗?Twig 可能会在主模板中读取这个变量并根据它决定使用哪个样式表,也许?

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

所以总结一下:

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

提前致谢!

迪特

4

1 回答 1

1

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

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

<link rel="stylesheet" type="text/css" 
      href="/path/to/css/site-{{ app.request.host }}.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 %}
于 2011-10-11T20:50:05.063 回答