Grails:从外部位置渲染pdf

时间:2016-11-14 14:35:38

标签: pdf grails

我目前在grails视图中有这个在新窗口中打开pdf文件:

<a href="${resource(dir: 'userGuides', file: file.getValue())}" target="_blank">   ${file.getValue()}</a><br/><br/>

其中file.getValue()是带扩展名的文件的名称。

这默认为grails-app / assets / userGuides的路径。我想更改它,以便从本地目的地打开文件,例如C:/ Users / user1 / userGuides /

我该如何更改?

1 个答案:

答案 0 :(得分:1)

如果您使用的是grails 2.x,则可以在Config.groovy中配置目标目录

例如

grails.datapath.userguides =“C:/ Users / user1 / userGuides /”

如果您想根据环境进行配置,可以这样做:

development {
    grails.datapath.userguides = "C:/Users/user1/userGuides/"
}
test {
    grails.datapath.userguides = "C:/anotherDirectory/userGuides/"
}
production {
    grails.datapath.userguides = "/var/www/${appName}/userGuides/"
}

然后定义一个控制器来访问您的文件,例如带有此操作的DocumentsController

def downloadUserGuide()
{
    ... // code to get your entity file that you use in your example to do
    ... // file.getValue()

    String path = grailsApplication.config.grails.datapath.userguides
    String label = ... // If you want to display another file name

    render(contentType: "application/pdf", file: new File(path + file.getValue()), fileName: label)
}