2013-05-01 4 views
1

Интересная проблема, но, возможно, она уже решена. У меня есть набор стилей CSS, которые применяются к нескольким доменам. Способ, которым он был архивирован, оба домена используют одни и те же файлы CSS и добавляют свои собственные определения и правила в таблицы стилей. Наша система такова, что в любое время, когда разработчик вносит изменения в файл CSS, принадлежащий определенному домену, то это же изменение должно быть сделано и в таблице стилей другого домена.Расширение таблицы стилей CSS?

Например, если у меня есть два домена: Main, SubMain. BOth из них разделяет таблицу стилей, называемую global.css, и разработчик, работающий над доменом SubMain, изменяет эту таблицу стилей, добавляя новое правило. Чтобы гарантировать, что что-то не сломается в главном домене, разработчику необходимо продолжить и добавить одно и то же правило в global.css в таблицу стилей global.css основного домена.

Почему это не имеет того же общего места, что находится вне меня, поскольку это общий инженерный проект. Я понимаю, что причина в том, что изменения должны были применяться немедленно и, к сожалению, единственным вариантом было использование одной и той же структуры стилей + каталогов во всех доменах. Но эта проблема существует, и это огромные накладные расходы. Есть ли в любом случае расширение таблиц стилей CSS, так что CSS с дополнительными CSS может быть добавлен в расширенные таблицы стилей.

Если нет, то какие другие решения могут быть предложены?

+1

Вы можете включить таблицы стилей по доменам –

+0

Что вы имеете в виду? Это именно то, что мы делаем. –

+0

Тогда зачем вам обновлять две таблицы стилей? –

ответ

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" /> 

Оба домена могут использовать это. Вы не связываетесь в каталоге таблицы стилей. Вы помещаете в нее ссылку своего стиля. Это решит вашу проблему.

+0

Если у меня есть global.css, то он существует в обоих доменах, и каждый домен в основном изменяет определенные правила и добавляет новые собственные правила. Изменения в любом добавленном домене нужно видеть в другом домене, так как они могут быть обычным явлением. Я предпочел бы добавить общие изменения в основную таблицу стилей, которая затем может быть унаследована дочерними таблицами стилей. Если это имеет какой-то смысл (очевидно, мое предположение о наследовании CSS теоретично и вдохновлено ООП) –

+0

@ParijatKalia как этот ответ не решает вашу проблему? –

+0

Я записал объяснение в комментарии. Я считаю, что это объясняет проблему, с которой я столкнулся. Можете ли вы рассказать мне, что вы не поняли? –

0

В обоих доменах может использоваться один файл CSS.

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

Просто ссылка на один файл CSS.

Если вы действительно хотите «синхронизировать» их, вы можете создать скрипт rsync, но это не имеет смысла.

+0

Да. Но global.css в доменах 1 и global.css в домене 2 - разные файлы. Они оба корневые из одного файла, но они добавляют изменения. Следовательно, связывание их не имеет никакого смысла, поскольку некоторые правила, которые являются уникальными для домена 1, не должны быть в домене 2 и наоборот. –

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"> 
1

Если у вас есть один и тот же код в двух местах, почему два файла (и это идет для кодирования, а также - методы или переменные или любой другой)? Если вы используете что-то большее, держите его в одном месте и ссылайтесь на него повсюду.

Что вам нужно сделать, это иметь веб-сайт точки Main в локальной копии CSS файла (например, так):

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

...а затем на SubMain сайте, включают в заголовках ссылку на файл CSS в Main сайта (вроде так):

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

Чтобы решить проблему, только в редактируемой CSS файл/файлы на одном домене (в Main один), а затем ссылаться на них, используя абсолютные URL-адреса на другом (SubMain) сайте.

Смежные вопросы