Эта статья Microsoft KB действительно является хорошим справочным пособием о том, как это сделать, и если вы внимательно прочитаете эту статью, вы также увидите способ «выполнить подстановку» во встроенных текстовых ресурсах, например CSS и JavaScript файлы также. Атрибут WebResource имеет свойство PerformSubstitution, которое, если задано значение true, позволит вам использовать URL-адреса WebResource внутри встроенных ресурсов. Это дает вам возможность ссылаться на встроенные изображения в селекторах CSS во встроенном файле CSS.
В файле AssemblyInfo вы должны указать PerformSubstitution следующим образом:
[assembly: WebResource("SimpleControl.MyScript.js", "text/javascript", PerformSubstitution = true)]
Внутри файла JavaScript вы можете использовать этот бит кода для доступа к определенному ресурсу по имени, как он есть в сборке (пространство имен и все):
<%= WebResource("SimpleControl.smallSuccess.gif")%>
Как правило, серверные элементы управления ASP.NET, которые делают скины по умолчанию (например, элементы управления Telerik), содержат все, что встроено в сборку. Я написал несколько элементов управления, которые используют эту технику в прошлом и в текущих проектах, и она работает очень хорошо. Если ваш CSS написан правильно, вы можете даже разрешить хорошее переопределение стиля, внешнего по отношению к элементам управления, чтобы позволить дальнейшую настройку для предоставленных значений по умолчанию и / или оболочек.