无法访问 Grails 3 中的 web-app 文件夹文件

Not able to access web-app folder files in Grails 3

我无法访问 Grails 3 中的 web-app 文件夹文件。 我在 web-app 文件夹中有 robots.txt,在 Grails 2 中我可以直接在 http://localhost:8080/robots.txt 访问它。迁移到 Grails 3 后,我无法再在 http://localhost:8080/robots.txt.

访问它

如何使这些文件再次可访问?

参见 https://github.com/grails/grails-core/releases/tag/v3.0.12 和部分 Location of static resources

在 Grails 3 中,您可以将文件存储在 src/main/resources 下。您可以通过以 static 开头的文件名访问它们,例如 http://localhost:8080/static/robots.txt

可以使用随附 URL

中定义的配置选项更改此路径

我在 Grails 3.3.1 中遇到过类似的问题。我必须访问文件模板才能将其与插件(excel-导出插件)一起使用。看完文档,我把文件放在了src/main/resources下。它在开发模式 (grails 运行-app) 中正常工作,但在生产环境 (grails war) 中收到错误。经过大量阅读,我找到了让它发挥作用的方法。我将文件放在同一目录 (src/main/resources) 中,然后在我的控制器中:

def template = this.class.classLoader.getResource('myExcelFile.xlsx')
def path = template.file  //will give you the real path to your file

有了路径,您就可以打开流或执行您需要执行的操作。在我的例子中,将它与插件一起使用:

new WebXlsxExporter(path).with {
  setResponseHeaders(response)
    add(products, withProperties)
    save(response.outputStream)
}