Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails 3 Jquery不';删除公共/资产后不执行_Jquery_Ruby On Rails 3_Caching_Asset Pipeline - Fatal编程技术网

Rails 3 Jquery不';删除公共/资产后不执行

Rails 3 Jquery不';删除公共/资产后不执行,jquery,ruby-on-rails-3,caching,asset-pipeline,Jquery,Ruby On Rails 3,Caching,Asset Pipeline,前几天,我遇到了一些Ajax问题,只需点击提交按钮,表单就被提交了多次。我四处浏览了一下,有人建议我删除我的public/assets文件夹,我这样做了,然后重新启动了服务器,结果发现我的一些Javascript库不再正常工作了 这实际上非常奇怪,因为我可以用Firebug调试器查看源代码,我可以看到它确实加载了。我试图清除我的缓存,我试图在开发模式下编译我的资产,我尝试重新启动我的系统,所有这些都不起作用。我的Javascript根本没有运行,在删除我的公共/资产文件夹后,它会无声地失败。-请

前几天,我遇到了一些Ajax问题,只需点击提交按钮,表单就被提交了多次。我四处浏览了一下,有人建议我删除我的public/assets文件夹,我这样做了,然后重新启动了服务器,结果发现我的一些Javascript库不再正常工作了

这实际上非常奇怪,因为我可以用Firebug调试器查看源代码,我可以看到它确实加载了。我试图清除我的缓存,我试图在开发模式下编译我的资产,我尝试重新启动我的系统,所有这些都不起作用。我的Javascript根本没有运行,在删除我的公共/资产文件夹后,它会无声地失败。-请参见编辑

快速参考我如何制作本期:

  • 已停止服务器
  • 删除的公共/资产
  • 重新启动服务器并注意到问题
  • 已清除缓存
  • 再次停止服务器并尝试预编译资产
  • 我尝试过的其他事情:

  • 在development.rb中设置
    config.service\u static\u assets=false
    ,再次预编译并重新启动服务器
  • 通过rails s-e开发验证了我是在开发模式下运行的

  • 删除了我的tmp/cache文件夹

  • 额外资料:

    • 我正在使用Rails版本3.1.3

    • 我最近开始使用一个Gem,它要求我在开发中将config.cache_类设置为true。我通过将其设置为false并重新测试来验证这不是问题。

    编辑

    进一步的测试表明,我的更改阻止了以下代码的触发:

    <script type="text/javascript">
       $(document).ready(function() {
         alert("Hello world!")
       });
    
    </script>
    
    
    $(文档).ready(函数(){
    警报(“你好,世界!”)
    });
    
    但这很好:

    <script type="text/javascript">
       alert("Hello world!")
    </script>
    
    
    警报(“你好,世界!”)
    

    起初,我认为文件不是从我的资产管道加载的,但相反,我的更改似乎在幕后引起了某种冲突。我从application.js文件中删除了
    require_tree
    ,并尝试手动加载库,发现它们又开始工作了,这对我来说不是一个理想的修复方法

    找到了罪犯,实际上是一石二鸟。我的一个JavaScript文件第二次需要jquery和jquery_ujs,而我的application.js文件中已经需要jquery和jquery_ujs,这就是我提到的Ajax问题的原因。同一个文件运行的脚本没有包含jquery document ready包装器,它似乎破坏了其他所有内容


    我相信这个问题是在我删除了我的public/assets文件夹后才出现的,因为它存储的是这个代码的旧版本,可能没有这些问题

    似乎是什么原因导致了我的
    jQuery(document).ready(函数($){…})不触发的功能。。。。?