【发布时间】:2010-02-20 06:16:27
【问题描述】:
我已经为 URL 路由实现了自己的 IRouteHandler。
对于没有扩展名的文件,它将尝试从 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”。
这是由 Server.Transfer 引起的吗?
我应该使用什么来重定向文件? Response.Redirect 对客户端可见。
【问题讨论】:
-
你不能使用 Response.Redirect 吗?
-
Response.Redirect 是发送给客户端的响应头,因此指示浏览器转到新位置。我想保持重定向 100% 服务器端。
-
如果您直接从“正确”的 URL 加载 CSS 文件(手动)会发生什么?
-
@Pointy:效果很好
标签: asp.net css firefox url-routing