1

一个有趣的问题,但也许它已经解决了。我有一组适用于多个域的 CSS 样式表。它的架构方式是,两个域共享相同的 CSS 文件,并将它们自己的定义和规则添加到样式表中。我们的系统是这样的,只要开发人员对属于特定域的 CSS 文件进行更改,那么同样的更改也需要在另一个域的样式表中进行。

例如,如果我有两个域:Main、SubMain。这两个共享一个名为 global.css 的样式表,并且在 SubMain 域上工作的开发人员通过添加新规则来更改此样式表。为了确保主域中的事情不会中断,开发人员需要继续将相同的规则添加到 global.css 到主域的 global.css 样式表中。

为什么它没有相同的共享位置,我无法理解,因为这是一个共享工程项目。我的理解是,原因是要立即应用更改,不幸的是,唯一的选择是在所有域中使用相同的样式表 + 目录结构。但是这个问题确实存在,而且开销很大。无论如何扩展 CSS 样式表,以便可以将特定于域的 CSS 添加到扩展的样式表中。

如果没有,可以提出哪些其他解决方案?

4

4 回答 4

1

如果您在两个地方有相同的代码,为什么有两个文件(这也适用于编码 - 方法或变量或其他)?如果您使用的东西不止于此,请将其保存在一个地方并在其他任何地方引用它。

您需要做的是让Main网站指向CSS文件的本地副本(如下所示):

<link rel=stylesheet type=text/css href="/global.css">

...然后在SubMain网站上,在标题中包含指向Main网站 CSS 文件的链接(如下所示):

<link rel=stylesheet type=text/css href="http://mainwebsite.com/css/global.css">

要解决您的问题,请仅在一个域(一个)上拥有可编辑的 CSS 文件/文件Main,然后使用另一个 ( SubMain) 网站中的绝对 URL 链接到它们。

于 2013-05-01T01:44:14.383 回答
0

两个域都可以使用一个 CSS 文件。

<link rel="stylesheet" type="text/css" href="http://myotherdomain.com/css/global.css">

只需链接到一个 CSS 文件。

或者,如果您真的想“同步”它们,您可以创建一个 rsync 脚本,但这没有意义。

于 2013-05-01T00:44:25.703 回答
0

很明显,您知道可以跨域包含样式表:

<link rel=stylesheet type=text/css href="http://example.com/global.css">

但是您知道您可以包含多个样式表吗?创建一个包含所有“主”样式的单个样式表,并将其放在其中一个域(您的选择)上的 global.css 中。每个域独有的样式可以在特定于该域的样式表中。

<link rel=stylesheet type=text/css href="http://example.com/css/global.css">
<link rel=stylesheet type=text/css href="/css/specific.css">
于 2013-05-01T01:13:35.027 回答
0

我不明白你。我不知道你的问题在哪里。要添加 2 个 CSS 样式表吗?

    <link href="style.css" type="text/css" rel="stylesheet" />
    <link href="style2.css" type="text/css" rel="stylesheet" />

或者您是否希望 2 个域使用 1 个样式表?

    <link href="http://url.com/style.css" type="text/css" rel="stylesheet" />

两个域都可以使用它。您没有在样式表的目录中链接。你把你的风格的链接放在里面。这将解决您的问题。

于 2013-05-01T00:34:36.927 回答