2010-01-11 12 views
16

Mam kilka własnych bibliotek JavaScript, które czynią ładne ładowanie moich stron HTML i chcę umieścić je na moich stronach gsp, szczególnie na stronie docelowej mojej aplikacji. Próbowałem umieścić je w folderze views i web-app/js i $APP_HOME/scripts, ale kiedy ładuję mój index.gsp, skrypty się nie wyświetlają.Gdzie należy umieścić biblioteki javascript w aplikacji Grails?

Próbowałem również wiele alternatyw w moim kodu z których żaden pracy ...

<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> 

Jestem pewien, że jest sprytny Grails to sposobem na bieżąco, ale tak naprawdę Chcę mieć lokalizację, w której mogę umieścić kod JavaScript, który mogę użyć w mojej aplikacji. Biorąc pod uwagę konwencję nad konfiguracją, jaka jest oczekiwana praktyka?

Odpowiedz

12

Z plikiem JS pod adresem: web-app/js/myLib.js, umieszczenie w szablonie <g:javascript library="myLib" /> powinno być tym, czego potrzebujesz.

+6

patrz poniżej: to jest złe. jest poprawny. –

+5

Zapomniałeś js tutaj @RickMangi. Prawidłowy sposób to: '' – chelder

+0

Co stanie się, gdy skompilujesz i wdrożysz swoją aplikację? Czy JavaScript jest automatycznie pakowany? – RPDeshaies

0

Myślę, że znalazłem odpowiedź ...

Jeśli używam ten tag w moim GSP (zamiast prostego odniesienia javascript)

<g:javascript library="mylib" />  

Potem, gdy patrzę na wygenerowanym źródła it odnosi się do

<script type="text/javascript" src="/myapp/js/mylib.js"></script> 

odpowiada folderze web-app/js, więc rzuciłem moją bibliotekę skryptów tam i to działa dobrze. Przełomem było dla mnie: a) zmienić nazwę mojego index.html na index.gsp i b) użyć znacznika g:javascript.

+0

Tak właśnie - muszę szybciej wpisać :) –

+0

dodawać tę samą odpowiedź i Pogodzę się z tobą! – Simon

+0

strzelać, wpisujesz szybko – Simon

22

Prawdopodobnie NIE powinieneś używać <g:javascript library="myLib" />, ponieważ ma to na celu uczynienie biblioteki wywołań AJAX (scriptaculous, dojo, yahoo, jquery) obojętnym. Zobacz grails javascript. Zamiast tego użyj <g:javascript src="myLib.js" />.

+0

To powinno być oznaczone jako poprawna odpowiedź. –

0

Zastosowanie <g:javascript src="myscript.js" /> i umieścić skrypt w web-app/js/myscript.js

Dla pełnej szczegółów i przykładów zarówno dla własnych skryptów zewnętrznych, w jednej linii kodu i bibliotek zobaczyć http://grails.org/doc/latest/ref/Tags/javascript.html.

+0

A co powiesz na graal 3? –

1

Istnieją dwa sposoby, za pomocą których można dołączyć pliku JS i bibliotekę JS jak 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> 

Patrz: http://grails.org/doc/latest/ref/Tags/javascript.html

Powiązane problemy