Лучший способ развернуть один сайт для двух компаний в ColdFusion? - PullRequest
1 голос
/ 18 июня 2010

У моего клиента несколько компаний; разные названия / логотипы и т. д., но все содержимое сайтов идентично, за исключением названных названий / логотипов.

В среде ColdFusion, что было бы для меня лучшим способом обслуживать идентичный контент и менять логотипы / названия компаний на лету, чтобы я мог хранить все в одном месте? Это решение jQuery? регулярное выражение? Или ColdFusion позволит мне эффективно развернуть это на основе переменных url и session?

Ответы [ 3 ]

2 голосов
/ 18 июня 2010

«Лучший» - относительный термин.Есть много способов сделать это.

Я бы, вероятно, использовал переключатель cgi.host_name в разделе onSessionStart () файла application.cfc.Сохраните правильное имя сайта, файл логотипа, ссылку css и т. Д. В сеансе и ссылку по мере необходимости.Это, конечно, предполагает, что вы уже используете сеансы.

Если вы хотите получить более конкретный ответ, вам нужно предоставить больше информации о том, что уже происходит на вашем сайте.

2 голосов
/ 18 июня 2010

Я бы порекомендовал что-то похожее на то, что предлагал @Ben Doom;хотя и не хранится в объеме сеанса.Вместо этого я бы рекомендовал использовать область применения.Нет причин заставлять каждый сеанс пользователя повторять одну и ту же информацию снова и снова.

Вы можете получить 2 разных «приложения» (в основном просто разные адресные пространства), работающих из одной и той же кодовой базы, дав им разные имена приложений.Как предлагает Бен, я бы основывал имя приложения на переменной CGI.Использование хэша гарантирует, что значение будет безопасно использовать в качестве имени приложения, но его будет не так просто включить.

Application.cfc:

component {
    this.name = hash(cgi.server_name);
}

Не все переменные CGI безопасны - некоторые могут быть изменены пользователем (реферер, ip и т. Д.), Поэтому, если вы собираетесь использовать одну из них, я рекомендую сделать что-то вроде хеширования, так каксделано выше, чтобы убедиться, что здесь можно безопасно использовать ... Но если вы используете одно из безопасных значений (например, cgi.server_name), тогда вы должны безопасно использовать его без хеширования и т. д.

В этом случае, было бы намного проще настроить тему дисплея для включения запущенного приложения:

Application.cfc:

component {
    this.name = cgi.server_name;
}

index.cfm:

<cfimport prefix="custom" taglib="#expandPath('./layouts')#" />
<custom:layout theme="#application.applicationname#">
    <!--- your content here --->
</custom:layout>

layouts / layout.cfm:

<cfparam name="attributes.theme" default="www.site1.com" />
<cfif attributes.theme eq "www.site1.com">
    <!--- include content for this theme --->
<cfelse>
    <!--- include content for this theme --->
</cfif>

(протестировано на Win7 / IIS7)

1 голос
/ 18 июня 2010

использовать ANT-скрипт , чтобы скопировать правильный логотип и заменить правильное имя при развертывании?

или используйте поддержку обнаружения среды Coldbox и загрузите другой файл конфигурации в зависимости от пути URL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...