为静态资产文件创建下载 link

Create download link for static asset file

我想在我的网站上下载 link,以便用户可以下载文件 template.csv。该文件是静态文件,位于我的 /grails-app/assets 文件夹的根目录下。

在我的 page.gsp 中,我尝试了 2 种方法,但无济于事:

实现我想要实现的目标的正确方法是什么?我需要添加额外权限才能下载我的文件吗?

我们的 webapp 依赖于相当陈旧的技术栈:

我在直接使用 -tag 下载文件时遇到了一些问题。

为了克服这个问题,我使用 Controller 方法 return 文件并将可下载文件放在 web-app/:

下它们自己的文件夹中
class MyController {

    @Autowired()
    AssetResourceLocator assetResourceLocator

    def downloadExcelTemplate () {

        String fileName = "MyExcelFile.xlsx"

        /* Note: these files are found in /web-app/downloadable directory */

        Resource resource = assetResourceLocator.findResourceForURI("/downloadable/$fileName")

        response.setHeader "Content-disposition", "attachment; filename=${resource.filename}"
        response.contentType = 'application/vnd.ms-excel'
        response.outputStream << resource.inputStream.bytes
    }
}

并且只需使用常规 a-tag 即可 link 此控制器方法。 这样您还可以更好地控制文件下载。