前几天我遇到了一些Ajax问题,只需点击一个提交按钮就可以多次提交表单。我做了一些浏览,有人建议我删除我的公共/资产文件夹,我这样做并重新启动我的服务器只是发现我的一些Javascript库不再正常运行...
这实际上非常奇怪,因为我可以使用Firebug调试器查看源代码,我可以看到它肯定已加载。我试图清除我的缓存,我试图在开发模式下重新编译我的资产,我尝试重新启动我的系统,这些都没有奏效。我的Javascript根本没有运行,在删除我的public / assets文件夹后无声地失败。 - 参见编辑
我如何制作此问题的快速参考:
我尝试过的其他内容:
config.serve_static_assets = false
,再次预编译并重新启动服务器 通过rails s -e development验证我是在开发模式下运行
删除了我的tmp / cache文件夹
额外信息:
我正在使用Rails版本3.1.3
我最近开始使用Gem,要求我在开发过程中将config.cache_classes设置为true。我通过将其设置为false并重新测试来验证这不是问题。
修改
进一步测试表明,我的更改阻止了以下代码触发:
<script type="text/javascript">
$(document).ready(function() {
alert("Hello world!")
});
</script>
但这很好用:
<script type="text/javascript">
alert("Hello world!")
</script>
最初我认为文件没有从我的Asset管道加载,但看起来我的更改在幕后造成了某种冲突。我从application.js文件中删除了require_tree
,并尝试手动加载库以找到它们再次开始工作,这对我来说不是一个理想的修复方法。
答案 0 :(得分:0)
找到了罪魁祸首,实际上是一石二鸟。我的一个JavaScript文件第二次需要jquery和jquery_ujs,因为我的application.js文件中已经需要它,这是我提到的Ajax问题的原因。同一个文件正在运行脚本,该脚本没有附带jquery文档就绪包装器,似乎已经破坏了其他所有内容。
我相信这个问题只是在我删除了我的public / assets文件夹之后才出现,因为它存储了这个代码的旧版本,可能没有这些挑战。