gpt4 book ai didi

javascript - rails : javascript_include_tag :all purpose?

转载 作者:行者123 更新时间:2023-11-29 18:30:59 24 4
gpt4 key购买 nike

我对 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 使用 sprockets 来捆绑 javascript 和 css 文件。这使得 :all 选项被弃用。 Sprockets 使用“神奇”注释来管理包含哪些 javascript。

所以你的 application.js 应该看起来像这样:

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .

第一行还包括 jQuery 本身,因此您不需要其他脚本标记。您只需指向应用程序即可。

<%= javascript_include_tag "application" %>

如果您要部署到生产环境,则需要运行 rake assets:precompile

有一个Railscasts episode关于 Assets ,这是必看的。

关于javascript - rails : javascript_include_tag :all purpose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8403933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com