【问题标题】:URL routing, rewrite path but keep mimetypeURL 路由,重写路径但保留 mimetype
【发布时间】: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


【解决方案1】:

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

使用 TransferRequest 方法,请求通过 IIS 管道发回。 http://msdn.microsoft.com/en-us/library/aa344902.aspx

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

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多