Die Darstellung von HTML-Dateien in Grails
Ich habe sah sich um, konnte aber nicht einen Weg finden, der einfach darunter oder rendering *.html-Dateien in Grails. Meine Anwendung muss g.render
oder <g:render>
Vorlagen geliefert werden als html-Dateien. Für diese, wie wir wissen, html-Dateien umgewandelt werden müssen _foo.gsp
Dateien in der Reihenfolge zu Rendern. Ich bin Total überrascht, warum nicht gibt es eine direkte Unterstützung für html-oder ist es einer????
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine naheliegende Möglichkeit ist es, einfach benennen Sie die HTML-Dateien aus
foo.html
zu_foo.gsp
und verwenden Sie dann<render template="foo">
. Dies ist jedoch so offensichtlich, dass ich bin sicher, Sie haben auch schon daran gedacht.Wenn Sie wollen einfach nur, um das Rendern einer HTML-Datei aus einem controller, den Sie verwenden können, die
text
parameter derrender
controller-MethodeWenn Sie möchten, das gleiche zu tun, in einem .Aps, könnten Sie schreiben einen tag. Etwas wie das folgende (ungetestet) sollte funktionieren:
Können Sie nennen diesen tag auch aus einem Aps mit
g.resource
Was ist es, das Sie versuchen zu erreichen?
Rendern von html-Code aus einem controller?
In diesem Fall, alle sollten Sie tun müssen, ist, leiten Sie den Benutzer auf die Datei aus Ihrer Kontrolle.
redirect(uri:"/html/my.html")
Verwenden Sie html-Dateien anstelle des gsp-template-Dateien?
Die Sache ist die, Grails ist ein "Convention over Configuration"-Plattform und das bedeutet, Sie haben zu tun, einige Dinge, "die Grails-Weg". Die Dateien, die die Bedürfnisse der _ und die
.gsp
aber der name kann alles sein, was Sie mögen, auch wenn es einfacher ist, wenn Sie den gleichen Namen verwenden wie die controller. Was gewinnen Sie, das zu tun, ist die Erkenntnis, dass jeder Entwickler, der weiß, grails und kommt in Ihr Projekt verstehen, wie die Dinge miteinander verbunden sind und die Ihnen helfen, schnell loszulegen.Bisschen fester die Don ' s Beispiel funktioniert gut für mich
import org.apache.Unterhaus.io.IOUtils
Wollte ich schreiben, statische html - /ajax-Seiten gehostet werden in grails-app (v2.4.4), aber mit dem controller für das url-rewrite. Ich war in der Lage, dies zu erreichen, indem Sie die Datei web-app/(für einfache Referenz), und nutzen Sie einfach die render () - Methode mit 'Datei' und 'contentType' params, wie:
Hinweis: ich habe nur versucht, diese mit der run-app, und haben es nicht gepackt Krieg und tomcat implementiert, noch.
Doc: http://grails.github.io/grails-doc/2.4.4/ref/Controllers/render.html
Es ist bezogen auf die web-app die Ordner Ihrer grails-main-Anwendung
def includeFile = { attr -> URL resource = Holders.getServletContext().getResource(attr.file) InputStream content = resource.getContent() String text = content?.text log.info "includeFile($attr) - resource: $resource, content.text.size(): ${text?.size()}" out << text }
Konnte ich @momo ' s Ansatz zu ermöglichen Einbeziehung von externen Dateien für grails-rendering plugin, wo Netzwerk-Pfade bekommen würde verkrachte in höheren Umgebungen - mine endete wie: