Javascript没有';我不在Heroku工作,但在当地环境中工作
我的javascript可以在本地环境中工作,但不能在Heroku上工作 该文件是“destroy.js.erb”,它位于视图中,与index.html.erb(使用javascript的地方)相同 以下是我怀疑发生错误的Heroku日志:Javascript没有';我不在Heroku工作,但在当地环境中工作,javascript,ruby-on-rails,heroku,Javascript,Ruby On Rails,Heroku,我的javascript可以在本地环境中工作,但不能在Heroku上工作 该文件是“destroy.js.erb”,它位于视图中,与index.html.erb(使用javascript的地方)相同 以下是我怀疑发生错误的Heroku日志: 2014-01-07T03:34:31.980578+00:00 app[web.1]: 2014-01-07T03:34:31.980578+00:00 app[web.1]: ActionController::RoutingError (No rou
2014-01-07T03:34:31.980578+00:00 app[web.1]:
2014-01-07T03:34:31.980578+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/application-ed404d2f6b226ecfcf36b0b53bc646a7.js"):
2014-01-07T03:34:31.980578+00:00 app[web.1]: I, [2014-01-07T03:34:31.976356 #2] INFO -- : Started GET "/assets/application-ed404d2f6b226ecfcf36b0b53bc646a7.js" for 24.24.157.128 at 2014-01-07 03:34:31 +0000
2014-01-07T03:34:31.980578+00:00 app[web.1]: F, [2014-01-07T03:34:31.977454 #2] FATAL -- :
2014-01-07T03:34:31.980578+00:00 app[web.1]: vendor/bundle/ruby/2.0.0/gems/actionpack-4.0.1/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
destroy.js.erb:(JavaScript通过淡出而不是页面刷新称为delete user)
$('#').fadeOut();
index.html.erb:
<h3>All Users List</h3>
<head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> </head>
<% @users.each do |user| %>
<%= div_for user do %>
<%= link_to "User #{user.firstname} #{user.lastname}", user %>
<font color='green'><%= user.email %></font>
<div class="actions">
<td><%= link_to 'View Detail', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Delete User', user_path(user), method: :delete, remote: true, data: {confirm: 'Are you sure?'} %></td>
<p>
</div>
<% end %>
<% end %>
<%= link_to 'Create New User', new_user_path %>
<!DOCTYPE html>
<html>
<head>
<title>Crud</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
所有用户列表
layouts/application.html.erb:
<h3>All Users List</h3>
<head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> </head>
<% @users.each do |user| %>
<%= div_for user do %>
<%= link_to "User #{user.firstname} #{user.lastname}", user %>
<font color='green'><%= user.email %></font>
<div class="actions">
<td><%= link_to 'View Detail', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Delete User', user_path(user), method: :delete, remote: true, data: {confirm: 'Are you sure?'} %></td>
<p>
</div>
<% end %>
<% end %>
<%= link_to 'Create New User', new_user_path %>
<!DOCTYPE html>
<html>
<head>
<title>Crud</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
积垢
正确%>
正确%>
编辑:以下是应用程序:
有人知道如何解决这个问题吗
谢谢大家! 我将以我将要说的话作为开场白,我知道这个想法对于一个小问题来说就像是大规模毁灭性的,但我用这几天的时间来解决这个问题,这是我找到的唯一解决办法 尝试增加
config/production.rb
文件中的config.assets.version
值。它将使你的应用程序的所有资产过期,但它也将为该文件重新生成md5指纹,并将帮助应用程序再次识别它
例如:
将config.assets.version='1.0'
更改为config.assets.version='1.1'
更新
听起来Heroku并没有为您预编译您的资产。尝试运行:
RAILS\u ENV=production bundle exec rake assets:precompile
,然后重新部署。如果您没有使用bundler
,您可以从上述命令中删除bundle exec
。使用Chrome的开发工具(如果您使用Firefox,则使用Firebug),查看请求在您的本地环境中的外观。它是否为application.js
请求相同的路径?我想不是,这可能会给你指明正确的方向。你好!如何使用Firebug检查请求路径?我是网络开发新手。谢谢你的帮助!我不使用Firefox,但这里有一些文档:很好!我看到Firebug显示无法找到应用程序-application-ed404d2f6b2226ecfcf36b50b53bc646a7.js。但是在本地,它正确地提取了js文件:/Awesome!你现在是我的希望。我试试看,然后回来汇报!如果不行,请告诉我。我真的花了好几天时间在这个问题上,这为我解决了它。祝你好运嗯,我看到应用程序ED404D2F6B2226ECFCF36B0B53BC646A7.js更改为应用程序0b975948ea716184c402656fda6196d0.js。但Firebug仍然显示404未找到状态:/哈哈!我已经排除了6个小时了。真不敢相信这花了我这么长时间!我找到了解决办法!事实证明,我必须手动将“gem'rails\u12factor'”包含在我的gem文件中,然后运行Bundle安装,然后推到Git,再推到Heroku。谢谢你抽出时间。没有你的帮助我是不会解决这个问题的!