我提取了所有静态资源(CSS,JS,IMG),视图(GSP)和 i18n (消息* .properties)从我的主要Grails应用程序到一个单独的插件('myguiplugin'),以便为前端设计人员提供访问权限,同时保持核心逻辑的机密性。
现在使用它会非常困难,因为当它自己运行时,插件(显然)无法正常工作。
主要原因是对标签的所有调用都不可用。例子:
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <sec:ifNotLoggedIn>
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <g:render>
有没有办法让grails忽略这样的错误,以便能够在浏览器中显示应用程序的静态部分?
答案 0 :(得分:0)
您可以通过GroovyPage.invokeTag()
尝试粗略覆盖metaClass
方法(这是在Grails 1.3中抛出此异常的方法),但我不确定会发生什么:D
像:
def oldInvokeTag = GroovyPage.metaClass.invokeTag
GroovyPage.metaClass.invokeTag = {
String tagName, String tagNamespace, int lineNumber, Map attrs, Closure body ->
try {
// or do something more smart
oldGormDelete.invoke(delegate, tagName, tagNamespace, lineNumber, attrs, body)
}
catch (e) {
out.append("some unknown tag: $tagNamespace:$tagName")
}
}