2012-01-03 2 views
9

Я не могу использовать интерфейс безопасности Grails UI (0.1.2) с Grails 2.0. Я искал возможные причины следующей ошибки и также попробовал предложенные исправления, но они, похоже, не работают. Я уже пробовал, переопределяя пользовательские интерфейсы, я также попробовал версию Grails 2.0-m2.Spring Security UI и grails 2.0

| Error 2012-01-02 17:17:12,659 ["http-bio-8080"-exec-5] ERROR [/webdemo].[default] - Servlet.service() for servlet [default] in context with path [/webdemo] threw exception 
Message: It looks like you are missing some calls to the r:layoutResources tag. After rendering your page the following have not been rendered: [head] 
    Line | Method 
->> 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 908 | run  in  '' 
^ 619 | run . . in java.lang.Thread 

Ниже мой main.gsp (некоторый код/​​комментарии будут удалены для краткости)

<head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
     <title><g:layoutTitle default="Grails"/></title> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
     <link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon.ico')}" type="image/x-icon"> 
     <link rel="apple-touch-icon" href="${resource(dir: 'images', file: 'apple-touch-icon.png')}"> 
     <link rel="apple-touch-icon" sizes="114x114" href="${resource(dir: 'images', file: 'apple-touch-icon-retina.png')}"> 
     <link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css"> 
     <link rel="stylesheet" href="${resource(dir: 'css', file: 'mobile.css')}" type="text/css"> 
     <g:layoutHead/> 
     <r:layoutResources /> 
    </head> 
    <body> 
     <div id="grailsLogo" role="banner"><a href="http://grails.org"><img src="${resource(dir: 'images', file: 'grails_logo.png')}" alt="Grails"/></a></div> 
     <g:layoutBody/> 
     <div class="footer" role="contentinfo"></div> 
     <div id="spinner" class="spinner" style="display:none;"><g:message code="spinner.alt" default="Loading&hellip;"/></div> 
     <g:javascript library="application"/> 
     <r:layoutResources /> 
    </body> 

ответ

8

Try, чтобы удалить г: JavaScript вызывает (т.е. <g:javascript library="application"/>) и загрузить его через инфраструктуру ресурсов вместо этого.

У меня такая же проблема здесь (с Grails 2.0.1), и это, кажется, разрешает это.

Если это решение действительно сработает и для вас, вам может потребоваться подать отчет об ошибке - поскольку это, по крайней мере, очень запутанное сообщение об ошибке.

+0

Спасибо, что решил. – Sap

+0

Какой g: вызов javascipt вы удалили - те, что у него в SpringSecurityUI плагин reqister и auth gsps? (Принимая s2ui-override, я предполагаю?) Не могли бы вы поделиться результирующим ресурсным модулем? – Wayne

+0

В моей ситуации у меня был переопределенный регистр; Я удалил g: javascript в layout.gsp (хотя они были прокомментированы), и проблема исчезла. –

9

Добавить <r:layoutResources /> тег внутри <head> и прямо перед </body>.

Это необходимо документации Grails Resources Plugin и далее для тега можно найти здесь http://grails-plugins.github.com/grails-resources/ref/Tags/layoutResources.html

+0

Пожалуйста, проверьте мои изменения, я добавил мой main.gsp, и у меня уже есть те теги в нем. Спасибо за ответ, хотя – Sap

0

У меня был получить то же сообщениеIt looks like you are missing some calls to the r:layoutResources tag.со следующим кодом

<g:javascript library='application' /> 
    <g:layoutHead/> 
    <r:layoutResources /> 

Исправлено при перемещении<g:javascript/>вызова междуlayoutHeadиlayoutResources

<g:layoutHead/> 
      <g:javascript library='application' /> 
    <r:layoutResources /> 
Смежные вопросы