[英]Rails: javascript_include_tag :all purpose?
我對Rails和Jquery有問題。 我正在使用AJAX向文章添加評論,而無需重新加載它們。 以下代碼自動包含在我的views / application.html中:
<%= javascript_include_tag "application" %>
<%= javascript_include_tag :all %>
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %>
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" %>
一切似乎都正常,直到我意識到服務器控制台顯示以下錯誤:
ActionController::RoutingError (No route matches [GET] "assets/all.js")
因此,由於此行似乎沒有將任何內容添加到應用程序,而是錯誤,因此我將其刪除。 下次我啟動服務器並使用該應用程序時,突然將每個注釋發布兩次! 否則,一切仍然正常。 所以我再次添加了刪除的行,我不知道為什么,但是當我添加行時
<%= javascript_include_tag :all %>
一切都再次正常,只有一個評論按預期發布。 但是我不想將此保留在代碼中,因為它會引發錯誤。 有人可以解釋這種現象並告訴我如何解決嗎?
Rails 3.1使用鏈輪來捆綁javascript和css文件。 這使得:all
選項被棄用。 鏈輪使用“魔術”注釋來管理其中包含的JavaScript。
因此,您的application.js
應該看起來像這樣:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
第一行還包括jQuery本身,因此您不需要其他腳本標簽。 您需要做的只是指向應用程序。
<%= javascript_include_tag "application" %>
如果要部署到生產環境,則需要運行rake assets:precompile
。
資產上有一個Railscasts插曲 ,這是必須看到的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.