ASP.NET主题和静态内容

时间:2011-01-04 14:15:20

标签: asp.net css themes

众所周知,ASP.NET在页面内的App_Themes的Theme文件夹中包含每个CSS样式表。没有讨论。

但是现在,我遇到一个问题,主题中有很多CSS文件,并且愿意使用static content domain。我想从静态域(不仅是CSS,还有图标,图像等)加载我网站的所有静态内容,但现在让我们只关注CSS。

我的问题是

是否可以覆盖Page类的行为,对于在Theme文件夹中找到的每个CSS文件,使用正确的静态内容域URL重写<link>标记?我没有阻止我将文件部署到http://static.domain.com/App_Themes/Theme路径,所以至少为标记添加前缀是可以的。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

是的,你可以。您可以让自定义基页类写入它在文件夹中找到的CSS文件。但是,我不确定您是否可以覆盖主题功能的默认行为,因此最简单的方法是将CSS文件移到默认主题之外。然后,您可以使用System.IO对象读取目录,访问该文件并生成链接。

HTH。

答案 1 :(得分:0)

另一种方法是编写http模块。让模块检查发送回客户端的html。

如果它检测到样式表参考,请更改样式表所从的位置。

这适用于其他项目,例如图像等。