У нас есть несколько различных внутренних сайтов для наших различных компаний/подразделений. Большая часть контента у них уникальна, но у них есть некоторые общие компоненты.
Наша текущая настройка развертывания (отстойная) включает использование инструмента «Копировать веб-сайт» в Visual Studio для копирования/синхронизации файлов между каталогом проекта и местом развертывания на сервере. Затем в IIS на сервере мы можем настроить виртуальные каталоги, указывающие на общие элементы (в основном страницы .aspx). Эти страницы ищут стандартную главную страницу в корне сайта и, таким образом, прекрасно работают на каждом отдельном сайте с соответствующей торговой маркой.
Несколько примеров:
- /Календарь отпусков
- /Каталог Телефона
- /Controls (файлы .ascx)
Хотя в продакшне это работает нормально, это отстой по ряду причин:
- Инструмент «Копировать веб-сайт» — отстой.
- Вы не можете отлаживать эти компоненты локально, так как они фактически не существуют на сайте.
- Сайт не компилируется, что приводит к очевидным проблемам с производительностью.
Поэтому я хотел бы выбросить всю эту чушь и перейти на использование предварительно скомпилированных сайтов с проектом веб-развертывания, который ставит все на свои места на сервере. Это поднимает проблему того, что делать с общими компонентами. Я почти уверен, что мне не сойдет с рук трюк с виртуальным каталогом в такой среде, и, честно говоря, я действительно этого не хочу.
Как создать подкаталог с файлами .aspx/.ascx и связанными ресурсами изображений/скриптов/CSS, которые будут действовать как библиотека классов? Предположим, я помещаю все, что находится в каталоге VacationCalendar, в свой собственный проект/решение, затем каждый сайт интрасети импортирует это и делает все эти файлы доступными по пути /VacationCalendar. Есть ли какой-нибудь способ сделать что-то подобное без больших головных болей?
Я действительно не хочу объединять все эти сайты в одно решение, так как всегда есть возможность ограничить доступ в системе контроля версий.