我应该将 javascript 库放在 Grails 应用程序的啥位置?
Posted
技术标签:
【中文标题】我应该将 javascript 库放在 Grails 应用程序的啥位置?【英文标题】:Where should I put javascript libraries in a Grails app?我应该将 javascript 库放在 Grails 应用程序的什么位置? 【发布时间】:2011-01-03 22:28:09 【问题描述】:我有几个自己的 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>
我确信有一种巧妙的 grails 方法可以即时执行此操作,但我真的只是想要一个可以放置一些可在我的应用程序中使用的样板 JavaScript 代码的位置。考虑到约定优于配置,预期的做法是什么?
【问题讨论】:
【参考方案1】:您可能不应该使用<g:javascript library="myLib" />
,因为它是用来使 AJAX 调用库(scriptaculous、dojo、yahoo、jquery)无动于衷的一种方式。见grails javascript。而是使用<g:javascript src="myLib.js" />
。
【讨论】:
【参考方案2】:您的 JS 文件位于:web-app/js/myLib.js
,我认为将 <g:javascript library="myLib" />
放入您的布局中应该是您需要的。
【讨论】:
见下文:这是错误的。<g:javascript src="myLib.js" />
构建和部署应用程序时会发生什么? JavaScript是否自动打包???【参考方案3】:
有两种方法可以包含 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
【讨论】:
【参考方案4】:我想我找到了答案……
如果我在我的 gsp 中使用这个标签(而不是直接的 javascript 引用)
<g:javascript library="mylib" />
然后当我查看生成的页面源时,它指的是
<script type="text/javascript" src="/myapp/js/mylib.js"></script>
这对应于文件夹web-app/js
,所以我把我的脚本库放在那里,它工作正常。对我来说,突破是 a) 将我的 index.html 重命名为 index.gsp 和 b) 使用 g:javascript
标签。
【讨论】:
是的 - 我需要更快地输入:)【参考方案5】:使用<g:javascript src="myscript.js" />
并将您的脚本放入web-app/js/myscript.js
有关您自己的外部脚本、内联代码和库的完整详细信息和示例,请参阅http://grails.org/doc/latest/ref/Tags/javascript.html。
【讨论】:
在 grails 3 中呢?以上是关于我应该将 javascript 库放在 Grails 应用程序的啥位置?的主要内容,如果未能解决你的问题,请参考以下文章
我应该将 <script> 标签放在 HTML 标记中的啥位置?
Symfony2,将 css、javascript、图像放在哪里