我有一个布局,它加载我的应用程序中使用的所有公共资源,但是当我通过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/宣告.js,这给出了一个http代码200,但是firebug显示它仍在等待文件,因此它没有被执行。
layout.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和moved,并将该行添加回gsp,所有这些都可以再次工作。
发布于 2013-01-09 08:47:48
这是最正确的方法。
<script type="text/javascript" src="js/announcements.js"></script>如果302 produce 200但文件未下载,则应检查您的isn服务器配置
https://stackoverflow.com/questions/14226518
复制相似问题