Я нахожусь в процессе переноса всех изображений в моем веб-приложении на CDN, но я хочу иметь возможность легко включать или выключать CDN без необходимости жесткого кодирования пути к изображениям.
Моей первой мыслью было добавить HttpHandler для расширений изображений, которые в зависимости от того, будет ли переменная в файле web.config (что-то подобное) обслуживать изображение с сервера или из CDN. Но, немного поработав, я думаю, что по сути исключил это, так как это заставит ASP.NET обработать запрос для каждого отдельного образа, добавив таким образом накладные расходы, и это может фактически полностью уменьшить преимущества использования CDN.
Альтернативный подход заключается в том, что, поскольку все мои страницы наследуются от базового класса страниц, я мог бы создать функцию в базовом классе, которая определяет путь для обслуживания файлов на основе переменной web.config. Я бы тогда сделал что-то подобное в разметке:
<img src='<%= GetImagePath()/image.png' />
Я думаю, что это, вероятно, то, что мне придется в конечном итоге сделать, но мне это кажется немного неуклюжим. Я также предполагаю проблемы со старой ошибкой .NET из-за невозможности изменить коллекцию элементов управления из-за "<% =", хотя решение "<% #", вероятно, будет работать. </p>
Есть мысли или идеи о том, как это реализовать?