我有一个布局,可以加载我在整个应用程序中使用的所有公共资源,但是当我通过 ajax 加载页面时,gsp 本身会呈现,我可以看到 ajax 调用下载了 js 文件(通过 firebug),但实际代码没有得到执行.
我尝试了以下方法从ajax加载页面下载并执行js文件,但没有成功。任何帮助将不胜感激。
使用的方法
<r:require modules="announcements" />
<r:layoutResources/>
结果:js文件下载但未执行
使用的方法
<g:javascript library="announcements"/>
with and without
<r:layoutResources/>
结果:文件未下载
方法:
<script type="text/javascript" src="js/announcements.js"></script>
结果:http 代码 302 临时移动并尝试下载 js/static/announcements.js,它给出了 http 代码 200 但萤火虫显示它仍在等待该文件,因此它没有被执行。
布局.gsp:
<html>
<head>
...
<g:if test="${session.isLoggedIn}">
<r:require modules="ui, jqueryDateFormat, loggedin" />
</g:if>
<g:else>
<r:require modules="ui" />
</g:else>
<r:layoutResources/>
<g:layoutHead />
</head>
...
</html>
ajax加载页面
<html>
<head>
<all methods mentioned above>
...
</head>
<body>
...
</body>
</html>
更新:我解决了这个问题。原来我的 JS 文件中有语法错误。Firebug 没有发现错误,它只是因为 JS 崩溃而停止。不得不将库调用移动到我的布局以查找错误。修复了 JS 并将该行添加回 gsp 并再次工作。