我的意图是显示图像,其结构应为:/ images / username /。我的理解是在数据库中将“完整的文件名,例如路径和文件名”保留为String。我正在使用Grails 2.4.4 ...
我已经阅读了许多有关此主题的文章,没有找到解决我问题的方法...
当我将图像放置到目录appname / web-app / images时,可以使用以下命令在.gsp中轻松对其进行显示:
`<img src="${resource(dir: 'images', file: 'image.jpg')}" alt="Image"/>
但是当我尝试创建所需的结构时,例如/ images / username /
-定义appname / web-app / images / username的子目录
-在此目录中部署文件image.jpg
-在gsp中使用以下命令:
<img src="${resource(dir: 'images/username', file: 'image.jpg')}" alt="Image"/>
图像的生成的html链接指向localhost:8080 / appname / images / username / image.jpg,但未显示任何内容
我进行了调查,发现应用程序服务器上的内容是什么,如果我在 Controller 中以编程方式创建子目录,则会发现:
def home (){
def baseFolder = grailsAttributes.getApplicationContext().getResource("/").getFile().toString()
def imagesFolder = baseFolder + '/images/username'
def tempFile=new File(imagesFolder)
tempFile.mkdir()
....
并将文件image.jpg放在该gsp命令myslef目录中:
<img src="${resource(dir: 'images/username', file: 'image.jpg')}" alt="Image"/>
Grails显示图像
我做错了什么?如何以某些文件系统结构显示图像,我将这些图像保存在数据库中?
只有“通过 Controller ”的方式,例如:grails display images in folder
通常,我想知道您对图像上传和显示真正可行的“最佳实践”的建议。通过研究stackoverflow,我知道有两种方法:
-将镜像保存在文件系统中(性能影响低,安全性,部署性低吗?)
-将镜像保存在数据库中(性能影响,合理的安全性和部署)
哪种方法最适合具有数千个图像的应用程序?由于性能影响,我的观点是第一选择,但我可能会误会...
我知道,有用于图像处理的Grails插件(Burning Image,...)。由于我的应用程序中包含大量图片,因此我将不得不“标准化图片大小”,例如降低某些下载图像的质量或尺寸。
你能推荐我使用插件吗?是否可以提供使用该插件的“完全正常工作的示例”代码的链接?
非常感谢您的帮助和支持
最佳答案
最后,我在InteliJ Idea IDE上测试了我的代码,一切正常。然后,我在详细说明为什么无法在GGTS上成功运行我的代码,发现一旦更改图像文件位置的结构,我必须“重建”项目。
关于image - 使用Grails显示图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913750/