Asp.net URL路由,重写路径但保留mimetype

Asp.net URL路由,重写路径但保留mimetype,asp.net,css,firefox,url-routing,Asp.net,Css,Firefox,Url Routing,我已经为URL路由实现了自己的IRoutHandler。 对于没有扩展名的文件,它将尝试将文件名作为页面从Pages目录加载,其中包含: return (IHttpHandler) BuildManager.CreateInstanceFromVirtualPath(path, typeof(Page)); 但是,也有图像和css文件(带有相对路径)需要转换为正确的url。我尝试通过以下方式为这些文件提供服务: try { HttpContext.Current.Server.Trans

我已经为URL路由实现了自己的IRoutHandler。
对于没有扩展名的文件,它将尝试将文件名作为页面从Pages目录加载,其中包含:

return (IHttpHandler) BuildManager.CreateInstanceFromVirtualPath(path, typeof(Page));
但是,也有图像和css文件(带有相对路径)需要转换为正确的url。我尝试通过以下方式为这些文件提供服务:

try {
   HttpContext.Current.Server.Transfer(fileName);
} catch (HttpException) {
   throw new HttpException(404, "file not found");
}
这很好(在Internet Explorer中),但是Firefox给了我一个错误:

未加载Styles.css,因为其 MIME类型“text/html”不是 “文本/css”

这是由服务器传输引起的吗?

我应该使用什么重定向文件?响应。重定向对客户端可见。

我找到了一个解决方案,.NET 3.5和IIS7引入了一个新方法:
Server.TransferRequest

使用TransferRequest方法,请求通过IIS管道发回


Firefox很高兴再次接受我的CSS文件。

你不能使用Response.Redirect吗?Response.Redirect是一个发送到客户端的响应头,用于指示浏览器转到新位置。我想保留100%服务器端重定向。如果直接从“正确”URL(手动)加载CSS文件,会发生什么情况?@Pointy:这很好