C#.NET:从动态生成的 HTML 更改 CSS 文件中的元素?

发布于 2024-10-20 20:25:24 字数 580 浏览 2 评论 0原文

我有一个 C# 代码隐藏文件,它从服务器动态生成 HTML 并将其转换为 PDF。在 HTML 中,有引用外部样式表的 元素以及许多 标记。

所有这些文件、图像和样式表都来自 www.example.com,我试图使所有元素都来自 static.example.com 并具有相同的属性网址代替。我已经使用了明显的 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');
在外部文件中。

对方法有什么想法吗?欢迎创意;我什么都愿意!

谢谢 :)

I have a C# code behind file that gets dynamically generated HTML from a server and converts it to a PDF. In the HTML there are <link rel="stylesheet"> elements that reference external stylesheets as well as many <img> tags.

All of these files, images and stylesheets, come from www.example.com, and I'm trying to make all elements come from static.example.com with the same url instead. I've used the obvious stringName.Replace("www.example.com","static.example.com") to replace the elements in the HTML, but is there any way to do so for the references in the CSS file?

FOR EXAMPLE:
background-image:url('www.example.com/bg.png');
needs to become
background-image:url('static.example.com/bg.png');
in the external file.

Any ideas on approach? Creativity is welcome; I'm up for anything!

Thanks :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

撑一把青伞 2024-10-27 20:25:24

既然你说“文件后面的代码”...你是在 ASP.NET 中这样做吗?

您可以在 HTML 代码中使用 String.Replace 函数将 更改为 。然后编写一个 fixcss.ashx 来检索 CSS 文件并对其执行字符串替换。

Since you say "code behind file"... are you doing this in ASP.NET?

You could use String.Replace functions in the HTML code to change <link href="www.example.com/cssfile.css"> to <link href="fixcss.ashx?file=www.example.com/cssfile.css">. Then write a fixcss.ashx to retrieve the CSS file and perform the string replacements on it.

兔姬 2024-10-27 20:25:24

您可以使用 filestream 来获取文件,然后替换为您使用过的代码。其他方法是开放的

您可能会发现这很有帮助

CSS 解析器

读取和解析 CSS文件

You may use filestream to get the file and then replace by the code you have used.Other approaches are open

You may find this like helpful

CSS Parser

Reading and Parsing a CSS file

烟─花易冷 2024-10-27 20:25:24

啊哈,这是我的一个想法。这可能效率低下,但我认为我可以这样做:

将每个 更改为

标记并读取文件内容,用嵌入的样式表替换外部样式表。

这可能效率低下,你想吗?

谢谢你!

Aha, so here's an idea I had. This might be inefficient, but here's what I think I could do:

Change each <link rel="stylesheet"> into a <style> ... </style> tag and read the file contents, replacing the external stylesheet with an embedded one.

This might be inefficient, thoughts?

Thank you!

趴在窗边数星星i 2024-10-27 20:25:24

只是为了某些变化(以及对于可能处于不同环境中的其他人),如果您有权访问它,您可以(并且应该)使用 URL 重写模块。它不仅可以重定向(就像 PHP 应用程序中的 .htaccess 一样),还可以重写所提供的文件中的 URL(例如,您的 CSS 文件)。

Just for some variety (and for other folks who might be in a different environment), if you have access to the to it, you can (and should) use the URL Rewrite module. It can not only redirect (like .htaccess in PHP apps would) but also rewrite the URL in files that are served (so for example, your CSS file).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文