Asp.net URL路由,重写路径但保留mimetype
我已经为URL路由实现了自己的IRoutHandler。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
对于没有扩展名的文件,它将尝试将文件名作为页面从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:这很好