Image Grails保存用户头像照片并在GSP中显示它们的最佳方式?

Image Grails保存用户头像照片并在GSP中显示它们的最佳方式?,image,grails,gsp,avatar,Image,Grails,Gsp,Avatar,我应该使用哪个文件夹将用户的头像照片保存在Tomcat容器中,以及如何在视图中显示它 我知道它必须在war文件之外,但我无法访问带有图像标记的图像,该图像标记位于提取的war文件夹之外。一个上传和显示用户配置文件照片的例子很受欢迎。 < P>如果它们只是小的化身,你可以考虑把它们保存到你的数据库中。当您需要再次显示它们时,您可以从数据库中获取它们并将它们写入响应的outputstream 下面是一个如何做到这一点的示例: 实际上,Tomcat不擅长提供静态文件,因此在Java应用程序前面放置“前

我应该使用哪个文件夹将用户的头像照片保存在Tomcat容器中,以及如何在视图中显示它


我知道它必须在war文件之外,但我无法访问带有图像标记的图像,该图像标记位于提取的war文件夹之外。一个上传和显示用户配置文件照片的例子很受欢迎。

< P>如果它们只是小的化身,你可以考虑把它们保存到你的数据库中。当您需要再次显示它们时,您可以从数据库中获取它们并将它们写入响应的outputstream

下面是一个如何做到这一点的示例:


实际上,Tomcat不擅长提供静态文件,因此在Java应用程序前面放置“前端”是很常见的。通常是这样。如果你不使用Nginx,我强烈建议你开始使用它,Nginx可以给你5倍的加速

使用Nginx,您可以存储/和服务器来自任何目录的图像:

server {
  location ~ ^\/(css|js|images)\/.*\.(gif|jpg|jpeg|png|ico|css|js)$ {
    root PATH_TO_WEBAPP;
  }
  location ~ ^\/avatar\/.*$ {
    root PATH_TO_AVATARS;
  }
  location / {
    proxy_pass         http://127.0.0.1:8080;
    proxy_set_header   Host  $host;
    proxy_set_header   X-Forwarded-For $remote_addr;
  }
}
其中:

  • 到WEBAPP的路径是tomcat提取您的应用程序的地方(
    /etc/tomcat/webapps/myapp
  • 路径到化身是存储化身的目录(
    /etc/my\u AVATARS
  • http://127.0.0.1:8080
    只需将所有其他请求转发到
    localhost:8080上的Tomcat即可
因此,您将能够从Grails将化身存储在自己的目录中,并通过Nginx为它们提供服务。对于最终用户,它将是一个类似于
/avatars/myavatar.png
的url,因此您可以使用
资源
像往常一样标记:

<img src="${resource(dir: 'avatars', file: 'myavatar.png')}" />


您尝试过什么?你研究了什么?帮助解决问题也是如此,而不是提供完整的解决方案。我不想存储在数据库中