C # .NET: Изменить элементы в файле CSS из динамически генерируемого HTML? - PullRequest
2 голосов
/ 09 марта 2011

У меня есть код C #, стоящий за файлом, который получает динамически сгенерированный HTML с сервера и преобразует его в PDF. В HTML есть <link rel="stylesheet"> элементы, которые ссылаются на внешние таблицы стилей, а также многие теги <img>.

Все эти файлы, изображения и таблицы стилей взяты из www.example.com, и я пытаюсь сделать так, чтобы все элементы были из static.example.com с одинаковыми URL. Я использовал очевидный stringName.Replace("www.example.com","static.example.com") для замены элементов в HTML, но есть ли способ сделать это для ссылок в файле CSS?

ПРИМЕР:
background-image:url('www.example.com/bg.png');
должен стать
background-image:url('static.example.com/bg.png');
во внешнем файле.

Есть идеи о подходе? Творчество приветствуется; Я за что угодно!

Спасибо:)

Ответы [ 4 ]

3 голосов
/ 09 марта 2011

Поскольку вы говорите «код за файлом» ... вы делаете это в ASP.NET?

Вы можете использовать функции String.Replace в HTML-коде, чтобы изменить <link href="www.example.com/cssfile.css"> на <link href="fixcss.ashx?file=www.example.com/cssfile.css">. Затем напишите fixcss.ashx, чтобы получить файл CSS и выполнить замену строк на нем.

2 голосов
/ 09 марта 2011

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

Это может оказаться полезным

Анализатор CSS

Чтение и анализ файла CSS

1 голос
/ 09 марта 2011

Просто для некоторого разнообразия (и для других людей, которые могут находиться в другой среде), если у вас есть доступ к нему, вы можете (и должны) использовать модуль перезаписи URL .Он может не только перенаправлять (как .htaccess в приложениях PHP), но и переписывать URL-адреса в обслуживаемых файлах (например, в вашем CSS-файле).

1 голос
/ 09 марта 2011

Ага, так вот у меня была идея. Это может быть неэффективно, но вот что, я думаю, я мог бы сделать:

Измените каждый <link rel="stylesheet"> на тег <style> ... </style> и прочитайте содержимое файла, заменив внешнюю таблицу стилей на встроенную.

Это может быть неэффективно, мысли?

Спасибо!

...