我想在我们的IIS 6服务器所服务的每个页面上添加一些HTML。它大部分都是静态HTML。这是IIS还是扩展可以做的事情?我需要控制注入HTML的方式和位置,在这种情况下是在标记之前。谢谢你的建议!
答案 0 :(得分:2)
本地化我相信你唯一能做的就是插入一个文档页脚(在“文档”选项卡上)。
答案 1 :(得分:2)
如果您熟悉ASP.NET,可以编写 HTTP响应过滤器来执行此操作。
HttpResponse 类有一个非常有用的属性:
public Stream Filter {get; set;}
MSDN提供了有用的说明 这个属性:“获取或设置一个 包装用于修改的过滤器对象 以前的HTTP实体主体 传输。“困惑?在其他 单词,您可以指定自己的自定义 过滤到每个页面的响应。 HttpResponse将发送所有内容 通过你的过滤器。这个过滤器会 在响应之前调用 回到用户,你会 如果需要,可以改变它 是
如果你这可能会非常有帮助 需要转换“遗产”的输出 代码或替代占位符 (页眉,页脚,导航,你的名字 它)用适当的代码。此外,在 时间根本不可能确保 每个服务器控件都由 规则并产生你所期望的 至。输入回复过滤器。
Filter属性是类型
System.IO.Stream
。创建自己的 过滤你需要从中派生一个类 System.IO.Stream(这是一个抽象的 class)并为其添加实现 众多方法。
答案 2 :(得分:1)
在IIS中,您可以添加页脚,这对版权行或类似内容非常有用。如果你想要更多控制,真正“注入”,我会创建一个HTTP处理程序(.NET)来处理.html请求并添加你需要的东西。
如果您是“老学校”,请改用ISAPI过滤器。我的口味太多了。
答案 3 :(得分:0)
在使用URL重写模块之前,我可以通过出站规则注入一些CSS:
<rewrite>
<rules>
<outboundRules rewriteBeforeCache="true">
<rule name="Add custom CSS" preCondition="IsHTML">
<match filterByTags="None" pattern="</head>" />
<action type="Rewrite" value="<link rel="stylesheet" href="/path/to/custom/styles_override.css"></head>" />
</rule>
<preConditions>
<preCondition name="IsHTML">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rules>
</rewrite>
您应该能够对html内容执行相同的操作,而不是css ...