2012-08-03 17 views
0

前幾天我遇到了一些Ajax問題,通過單擊提交按鈕多次提交表單。我做了一些瀏覽,有人建議我刪除我的公共/資產文件夾,我這樣做,並重新啓動我的服務器,只發現我的一些Javascript庫不再正常運行...Rails 3 Jquery在執行刪除公共/資產後不會執行

它實際上很奇怪因爲我可以使用Firebug調試器查看源代碼,並且可以看到它確實加載了。我試圖清除我的緩存,我試圖在開發模式下編譯我的資產,我試着重新啓動我的系統,但這些工作都沒有成功。我的Javascript只是沒有運行,並在刪除我的公共/資產文件夾後無聲無息地失敗。 - 看到編輯

我如何產生這個問題的快速參考:

  1. 停止服務器
  2. 刪除公共/資產
  3. 重新啓動的服務器,發現問題
  4. 再次清除緩存
  5. 停止服務器,並試圖預編譯資產
  6. 我已經試過

其他的東西:

  1. 設置config.serve_static_assets = false在development.rb,預再次編譯並重新啓動服務器
  2. 已驗證我是在發展的模式,通過軌道小號-e運行,開發

  3. 刪除了我的TMP /緩存文件夾

額外信息:

  • 我使用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> 

我認爲檔案不是' t從我的Asset管道加載,但是看起來像我的更改在幕後造成了某種衝突。我從我的application.js文件中刪除了require_tree,並嘗試手動加載庫以發現它們再次開始工作,這對我來說不是一個理想的解決方案。

+0

,似乎有什麼東西引起了我'jQuery的(文件)。就緒(函數($) {...});'函數不火....? – Noz 2012-08-03 16:58:06

回答

0

找到罪魁禍首,二鳥一石實際。我的一個JavaScript文件需要第二次使用jquery和jquery_ujs,因爲我的application.js文件中已經有了這個文件,這是我提到的Ajax問題的原因。這個文件運行的腳本沒有被jquery文檔包裝器封裝起來,它似乎破壞了其他所有的東西。

我相信問題只是提出了自己之後,我刪除了我的公共/資產文件夾,因爲它是存儲該代碼可能沒有這些挑戰的舊版本。