Многое зависит от того, почему вы пытаетесь достичь этого. В настоящее время мы обслуживаем четыре разных «приложения» в нескольких разных доменах и поддоменах из одного и того же приложения Rails. Мы делаем это, потому что у нас есть разные клиенты, которые хотят видеть разные функции нашего продукта. Например, каждый продукт разделяет идею клиентов, контрактов, торговцев и многих других моделей, но они хотят, чтобы сайт был заклеймен по-разному, вкладки и пункты меню названы по-разному и некоторые части сайта недоступны для определенных людей.
Вы изложили CSS и изображения как свои основные проблемы, поэтому я буду придерживаться их, однако нам также пришлось использовать идеи для исправления макетов, авторизации и javascript среди других проблем и ресурсов.
Для простоты я назову кожу, в нашем случае это отдельный продукт.
В нашем приложении есть плагин, который устанавливает некоторые переменные среды на основе входящего домена. Затем, основываясь на этих переменных, наше приложение Rails будет размещать различные макеты и частичные по мере необходимости. Эти макеты затем ссылаются на соответствующие JS и изображения, которые хранятся в местах, которые имеют смысл для дизайнеров и сторонних разработчиков. Например, client.js может хранить обычные операции клиента, а затем в подкаталоге может быть client.js для скина, и он расширяет основной файл customer.js (для этого мы используем Dojo).
В других областях, где безопасность является проблемой, у нас есть библиотеки, которые выполняют то, что требуется на основе переменных среды, которые были установлены нашим доменным камнем.
Мы также должны предоставить динамический брендинг, чтобы снова эти взгляды и макеты имели помощников с логикой в них, чтобы определить, откуда должны исходить изображения и т. Д.
Для CSS мы используем SASS, поэтому много раз вы можете использовать mixins для цветов и изображений. Мы делаем это, имея корневой файл SASS с информацией о макете, в которой используются переменные для цветов и изображений. Затем мы потребуем, чтобы эти цветные файлы и файлы изображений в корневой SASS по мере необходимости.
Ответ может быть лучше, если вы дадите некоторую информацию о том, как вы определяете между этими двумя скинами. Насколько я знаю, теперь есть плагины домена, которые могут помочь вам определить, на каком сайте пользователь пытается получить доступ. Что касается того, как организовать ваше приложение для отображения правильного CSS, изображений, JS и т. Д., Надеюсь, то, что я изложил, помогает немного.