我是Grails新手。我的应用程序是Grails的,我的集成开发环境是IntelliJ IDEA。我将我的项目(在IntelliJ中)配置为我的资源文件夹在root\src\resources下。我有一个需要加载到InputStream / BufferedImage中的图像文件。但是,我似乎无法从我的Grails控制器访问这些资源。这就是我所尝试的:
def image = this.getClass().getClassLoader().getResourceAsStream("image.png")但这只会返回null。我在Java项目中使用了完全相同的约定(好吧,除非我必须声明image的类型为InputStream),并且它确实在那里起作用。我的印象是,我基本上可以将Java代码放到Grails项目中,它应该可以正常工作。我需要做些什么才能让它在我的Grails控制器中工作呢?我需要访问该静态资源文件。
发布于 2014-11-01 00:20:45
如果您在IntelliJ IDEA中将一个目录标记为源目录,Grails将不会知道它。您必须正确配置Grails,方法是将新目录添加为源目录,或者将资源移动到标准源目录之一。
实际上,我自己从来没有添加过新的源目录,但是this堆栈溢出问题的答案看起来很有希望。
除此之外,您只需将资源添加到任何源目录,它将被包括在内,例如:grails-app/conf、src/java、src/groovy等。此外,web-app/META-INF/classes中的任何文件也将位于应用程序的类路径中。如果您需要复制java或groovy源文件(即只复制,不编译),那么最后一个是很好的。
发布于 2014-11-01 01:06:19
尝尝这个
servletContext.getResourceAsStream("/WEB-INF/resources/yourfile")https://stackoverflow.com/questions/26678756
复制相似问题