Ответ 1
С вашим JS файлом по адресу web-app/js/myLib.js
, помещая <g:javascript library="myLib" />
в ваш макет, я должен быть тем, что вам нужно.
У меня есть несколько Javascript-библиотек, которые делают некоторые приятные фотографии моих HTML-страниц, и я хочу включить их в мои страницы gsp, особенно целевую страницу моего приложения. Я попытался поместить их в папку views
и web-app/js
и $APP_HOME/scripts
, но когда я загружаю index.gsp, сценарии не отображаются.
Я также пробовал различные варианты в моем коде, ни один из которых не работает...
<script src="mylib.js" type="text/javascript"></script>
<script src="js/mylib.js" type="text/javascript"></script>
<script src="scripts/mylib.js" type="text/javascript"></script>
Я уверен, что есть хитроумный способ сделать это на лету, но мне действительно нужно место, где я могу разместить какой-нибудь шаблонный JavaScript-код, который я могу использовать в своем приложении. С учетом концепции конфигурации, какова ожидаемая практика?
С вашим JS файлом по адресу web-app/js/myLib.js
, помещая <g:javascript library="myLib" />
в ваш макет, я должен быть тем, что вам нужно.
Вы, вероятно, НЕ должны использовать <g:javascript library="myLib" />
, поскольку это предназначено для использования в качестве способа сделать библиотеку вызовов AJAX (scriptaculous, dojo, yahoo, jquery) равнодушной. Смотрите grails javascript. Вместо этого используйте <g:javascript src="myLib.js" />
.
Есть два способа, которыми вы можете включить JS файл и JS-библиотеку, например scriptaculous
// actually imports '/app/js/myscript.js'
<g:javascript src="myscript.js" />
// imports all the necessary js for the scriptaculous library
<g:javascript library="scriptaculous" />
<g:javascript>alert('hello')</g:javascript>
Обратитесь: http://grails.org/doc/latest/ref/Tags/javascript.html
Думаю, я нашел ответ...
Если я использую этот тег в своем gsp (а не в простой ссылке javascript)
<g:javascript library="mylib" />
Затем, когда я смотрю на сгенерированный источник страницы, он ссылается на
<script type="text/javascript" src="/myapp/js/mylib.js"></script>
Это соответствует папке web-app/js
, поэтому я бросил свою библиотеку script там, и она отлично работает. Прорыв был для меня: a) переименовать мой index.html в index.gsp и b) использовать тег g:javascript
.
Используйте <g:javascript src="myscript.js" />
и поместите свой script в web-app/js/myscript.js
Подробные сведения и примеры для ваших собственных внешних скриптов, встроенного кода и библиотек см. http://grails.org/doc/latest/ref/Tags/javascript.html.