重定向至“静态文件 asp.net 核心”诊断树



我正在开发一个在wwwroot文件夹下包含图像的应用程序。当图像被调用(something.com/Images/img.png(时,我需要运行一个代码,完成后我需要图像出现。执行代码后是否可以将管道线重定向到静态文件(图像(。我的代码如下所示:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
   app.Map("/images", images =>
   {
      images.Map("/img.png=", img =>
      {
         HandleImages(app);
      });
   });
}
private void HandleImages(IApplicationBuilder app)
{
   app.Run(async (context) =>
   {
      //do something
      //redirect to The Image 
   });
}

我尝试使用图像出现app.UseStaticFiles();但代码未执行。

由于图像URL相同,因此您无法重定向到同一图像 - 这将是一个不定式重定向循环。

您有两种选择:

    对图像
  1. 使用不同的 URL,然后您可以返回对图像的重定向响应。
  2. 如果需要使图像 URL 与处理程序相同,则可以返回带有 image/jpeg 等 mime 标头的图像流响应。无需重定向。

让我知道上述任何选项是否适合您。

更新。

下面是 #1 的示例 - 使用管道重定向到具有不同 URL 的图像。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    // Make sure static files serving enabled
    app.UseStaticFiles();
    app.Map("/images", images =>
    {
        images.Map("/img.png", img =>
        {
            HandleImages(img);
        });
    });
}
private void HandleImages(IApplicationBuilder appBuilder)
{
    appBuilder.Run((context) =>
    {
        //do something
        // ..
        //redirect to The Image 
        context.Response.Redirect("/images/another.jpg");
        return Task.FromResult(0);
    });
}

总结:

  • 启用app.UseStaticFiles();
  • img传递到HandleImages()方法中。
  • 返回带有实际图像路径的重定向响应。图像 URL 必须不同于映射的处理程序 URL。

相关内容

  • 没有找到相关文章

最新更新