首页 > 解决方案 > Grails 3 如何从应用程序根目录访问网站图标、图标和磁贴文件

问题描述

我有一个在http://localhost:8092上运行的 Grails 应用程序

不同的浏览器在根路径(http://localhost:8092/)中查找某些文件,例如:favicon.ico、browserconfig.xml(在 Windows 上查找 ms 磁贴)、site.webmanifest(查找图标 + 应用名称)在将 Web 应用程序添加到主屏幕时使用的 Android 上)、safari-pinned-tab.svg(用于 Safari)、favicon-32x32.png/favicon-16x16.png(用于替代大小的 favicon)等。

我可以做的是 favicon.ico,将其添加到 grails-app/assets/images 并使用 GSP 中的资产管道:

但其余的不起作用。此外,site.webmanifest 和 browserconfig.xml 文件具有特定图像的路径,可分别用作 Android 图标或 Windows 磁贴。我可以将这些路径更改为位于 /assets/... 下,但这些文件应该在 Grails 应用程序根目录下可用。

查看文档并尝试在线查找示例,但找不到 Grails 3 的任何内容。

如何配置 Grails 以允许从应用程序的根路径访问这些文件?

顺便说一句,我正在使用 Grails 3.2.9

标签: grails

解决方案


根据发行说明

为了解决有关如何处理不存在资源上的 REST 应用程序的 POST 请求的问题,位于 src/main/resources/public 中的静态资源现在默认在 /static/** URI 下解析,而不是基础URI /**。如果您希望恢复以前的行为,请添加以下配置:

grails.resources.pattern = '/**'

它还解决了以下问题(即使对于 rest-api 配置文件应用程序):

警告 org.springframework.web.servlet.PageNotFound - 在 DispatcherServlet 中找不到带有 URI [/favicon.ico] 的 HTTP 请求的映射,名称为“grailsDispatcherServlet”


推荐阅读