0

我正在编写一个从 IHttpHandler 继承的类,用于脚本和 css 的结合。如果查询字符串定义了特殊参数,我只想合并。如果未定义此参数,那么我想编写文件的内容,就好像甚至不涉及处理程序一样。什么是完好无损地交付文件的最佳方式?

EIDT:

我遇到的一个问题是页面上有一个脚本标记,它引用了虚拟目录中的脚本,但我所在的页面位于应用程序的子目录中。

引用控制脚本的页面位于 webserver/Admin/Default.aspx。当我在实现 IHttpHandler 的类中访问 Request 对象时,所有文件路径属性如下:webserver/Admin/~/SharedScripts/control.js。我该如何解决这个问题?

4

1 回答 1

2

您可以像这样在“ProcessRequest(HttpContext context)”方法中检查查询字符串参数:

context.Request.QueryString["paramertername"]

如果您想按原样流式传输请求的文件,则可以执行以下操作:

        string physicalFilePath = context.Request.PhysicalPath;
        string fileContent = string.Empty;

        // Determine whether file exists
        if (File.Exists(physicalFilePath))
        {
            // Read content from file
            using (StreamReader streamReader = File.OpenText(physicalFilePath))
            {
                fileContent = streamReader.ReadToEnd();
            }
        }

        context.Response.Output.Write(convertedFile);
        context.Response.Flush();

PS:您还可以查看以下代码项目文章以获得更全面的示例: http: //www.codeproject.com/KB/locale/LocalizedScriptsAndStyles.aspx

于 2010-03-11T01:06:22.973 回答