如何从ServiceStack查询返回图像

本文关键字:返回 图像 查询 ServiceStack | 更新日期: 2023-09-27 18:22:02

我有一个有效的解决方案,尽管我怀疑有更有效的方法。。。最终的结果是主题的照片被显示在网页上。为了实现这一点,我有一个ServiceStack服务,它返回一个字节数组,我将其提供给一个HttpHandler,该HttpHandler获取字节数组并将其转换为图像。通过这种方式,我可以将图像的src设置为http://www.mydomain.com/httphandler.ascx?id并且将显示特定人物的图像。我希望可以绕过HttpHandler,使用ServiceStack将图像返回到网页。我找不到任何好的例子,但我相信我读到ServiceStack可以做到这一点。这可能吗?

如何从ServiceStack查询返回图像

关于服务返回类型的文档展示了如何返回图像响应,这些技术在ServiceStack的imgur.ServiceStack.net演示中使用。

另一种解决方案是让像nginx这样的工业级Web服务器来提供静态文件,从而完全避免ServiceStack、ASP.NET或任何托管.NET代码,这可以通过写入静态文件并重定向到它来实现。

这就是如何配置nginx为/img/中的所有静态文件提供服务,并向具有常见web格式文件扩展名(ico|pdf|flv|swf|exe|txt|css)的静态文件添加缓存头:

server {
    listen 0.0.0.0:80;
    server_name myserver.net;
    root /home/src/myserver.net;
    location /img/ {
       alias /home/src/myserver.net/img/;
    }
    location ~* '.(ico|pdf|flv|swf|exe|txt|css) { 
       add_header        Cache-Control public;
       add_header        Cache-Control must-revalidate;
       expires           1d;
    } 
    location / {
        index index.html index.htm index.aspx default.htm default.aspx;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}