重定向到静态文件 asp.net 核心
Redirect to Static file asp.net core
我正在开发一个在 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 相同,您不能重定向到同一图像 -- 这将是一个不定式重定向循环。
您有两个选择:
- 对图像使用不同的 URL,然后您可以 return 重定向对图像的响应。
- 如果您需要保持图像 URL 与处理程序相同,那么您可以 return 使用
image/jpeg
等 mime header 的图像流响应。无需重定向。
让我知道以上任何选项是否适合您。
更新。
这是 #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()
方法。
- Return 重定向响应与实际图像的路径。图像 URL 必须不同于映射的处理程序 URL。
我正在开发一个在 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 相同,您不能重定向到同一图像 -- 这将是一个不定式重定向循环。
您有两个选择:
- 对图像使用不同的 URL,然后您可以 return 重定向对图像的响应。
- 如果您需要保持图像 URL 与处理程序相同,那么您可以 return 使用
image/jpeg
等 mime header 的图像流响应。无需重定向。
让我知道以上任何选项是否适合您。
更新。
这是 #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()
方法。 - Return 重定向响应与实际图像的路径。图像 URL 必须不同于映射的处理程序 URL。