2010-01-11 36 views
16

Tôi có một vài thư viện Javascript của riêng mình mà làm một số đẹp prettyfying của các trang HTML của tôi và tôi muốn bao gồm chúng trong các trang gsp của tôi, đặc biệt là trang đích của ứng dụng của tôi. Tôi đã thử đặt chúng trong thư mục viewsweb-app/js$APP_HOME/scripts nhưng khi tôi tải chỉ mục của mình, các tập lệnh không hiển thị.Tôi nên đặt thư viện javascript trong ứng dụng Grails ở đâu?

Tôi cũng đã cố gắng rất nhiều lựa chọn thay thế trong mã không có tôi trong đó việc ...

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

tôi chắc chắn rằng có một cách grails thông minh để làm điều này một cách nhanh chóng, nhưng tôi thực sự chỉ muốn có một vị trí nơi tôi có thể đặt một số mã JavaScript soạn sẵn mà tôi có thể sử dụng trong ứng dụng của mình. Với quy ước về cấu hình trong tâm trí, thực hành dự kiến ​​là gì?

Trả lời

12

Với tệp JS của bạn tại: web-app/js/myLib.js, đặt <g:javascript library="myLib" /> trong bố cục của bạn, tôi nên nghĩ là những gì bạn cần.

+6

xem bên dưới: điều này là sai. là chính xác. –

+5

Bạn quên js ở đây @RickMangi. Cách chính xác là: '' – chelder

+0

Điều gì sẽ xảy ra khi bạn xây dựng và triển khai ứng dụng của mình? JavaScript có được đóng gói tự động không ??? – RPDeshaies

0

Tôi nghĩ rằng tôi đã tìm thấy câu trả lời ...

Nếu tôi sử dụng thẻ này trong GSP của tôi (chứ không phải là một tài liệu tham khảo javascript đơn giản)

<g:javascript library="mylib" />  

Sau đó, khi tôi nhìn vào mã nguồn trang web tạo ra nó đề cập đến

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

Điều này tương ứng với thư mục web-app/js, vì vậy tôi đã bỏ thư viện tập lệnh của mình ở đó và hoạt động tốt. Bước đột phá là để tôi a) đổi tên index.html thành index.gsp và b) sử dụng thẻ g:javascript.

+0

vâng chính xác - Tôi cần phải gõ nhanh hơn :) –

+0

gửi câu trả lời giống nhau và Tôi sẽ upvote ya! – Simon

+0

bắn, bạn gõ nhanh – Simon

22

Bạn có lẽ KHÔNG nên sử dụng <g:javascript library="myLib" /> vì điều đó có nghĩa là được sử dụng như một cách để thực hiện thư viện cuộc gọi AJAX (scriptaculous, dojo, yahoo, jquery) thờ ơ. Xem grails javascript. Thay vào đó hãy sử dụng <g:javascript src="myLib.js" />.

+0

Điều này phải được đánh dấu là câu trả lời chính xác. –

0

Sử dụng <g:javascript src="myscript.js" /> và đặt kịch bản của bạn trong web-app/js/myscript.js

Đối với đầy đủ chi tiết và ví dụ cho cả hai kịch bản bên ngoài của riêng mình, trong dòng mã và thư viện thấy http://grails.org/doc/latest/ref/Tags/javascript.html.

+0

Còn về grails 3 thì sao? –

1

Có hai cách mà bạn có thể bao gồm tập tin JS và thư viện JS như 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> 

Tham khảo: http://grails.org/doc/latest/ref/Tags/javascript.html

Các vấn đề liên quan