2015-04-16 2 views
1

Я пытаюсь установить в java-библиотеку angularjs/restangular js в приложении Grails на основе главы в Grails In Action. Проблема заключается в том, что в коде в этой книге используются плагины , который был заменен в версии Grails, которую я использую (2.4) на плагине с активами.Grails - переход из ресурсов в плагин ресурса-конвейера

В качестве руководства я попытался реализовать код книги, используя the official documentation, но необходимый javascript не входит в мои файлы gsp. Кроме того, ссылки на <r:layoutResources/> и <r:require module="core"/> в моих файлах gsp выделяются как «неизвестные теги» в редакторе GGTS.

Может кто-нибудь посоветовать о том, где я пошло не мигрирую из ресурсов плагина к активам трубопроводного? В частности, я скопировал следующие JS библиотеки в моем веб-приложение/JS папки:

enter image description here

И я хочу, чтобы определить зависимости между этими модулями и поэтому я создал следующий conf\ApplicationResources.groovy:

modules = { 

    angularjs { 
     resource url:'js/angular-1.3.15.js', disposition: 'head' 
    } 

    restangular { 
     dependsOn 'angularjs' 
     resource url:'js/restangular-1.4.0.js' 
    } 

    lodashjs { 
     resource url:'js/lodash-3.6.0.js' 
    } 

    core { 
     dependsOn 'restangular, lodashjs' 
     resource url:'/js/custom.js' 
    } 
} 

И views\layout\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="${assetPath(src: 'favicon.ico')}" type="image/x-icon"> 
    <link rel="apple-touch-icon" href="${assetPath(src: 'apple-touch-icon.png')}"> 
    <link rel="apple-touch-icon" sizes="114x114" href="${assetPath(src: 'apple-touch-icon-retina.png')}"> 
     <asset:stylesheet src="application.css"/> 
    <asset:javascript src="application.js"/> 
    <g:layoutHead/> 
    <r:layoutResources/> <-- why is this highlighted as 'unknown'? 
</head> 

И views\post\singlepage.gsp:

<head> 
    <title>Timeline for ${ user.userid }</title> 
    <meta name="layout" content="main"/> 
    <content tag="htmlAttrs">ng-app="testsparestang"</content> 
    <r:require module="core"/> <-- again, this is unknown! 
</head> 
+0

Затраты на активацию были заменены по умолчанию. Вы всегда можете просто удалить его и использовать плагин ресурсов. – Gregg

+0

Спасибо, но я хотел бы продолжать использовать конвейер активов, если это возможно. Я предполагаю, что это должно быть лучше, чем плагин ресурсов (как-то?). – CSharp

+2

Я не уверен, что это во всех случаях. Для создания одной страницы javascript-тяжелого дизайна я получаю ее. Для вашего типичного приложения для ответа на обновления я не вижу огромных преимуществ, и он более ограничен, чем ресурсы на то, как вы можете управлять своими зависимостями. – Gregg

ответ

0

Если вы хотите использовать плагин ресурса, пожалуйста, комментарий код плагина активов трубопровода из файла BuildConfig.groovy. И если вы хотите использовать конвейер ресурсов, то просто комментируйте плагин ресурсов из BuildConfig.groovy. Теперь убедитесь, что вы удаляете тег из вашего макета, поскольку это будет работать только с плагинами ресурсов и не требуется с конвейером. Также тег - это плагин ресурсов. Так что измените его в соответствии с конвейером ресурсов