繁体   English   中英

Javascript在Heroku中不起作用,但在本地环境中不起作用

[英]Javascript Doesn't Work in Heroku but in Local Environment

我的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 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通过fadeOut而不是页面刷新称为删除用户)

$('#<%= dom_id(@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 %>

布局/ application.html.erb:

<!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>

编辑:这是应用程序: http//sheltered-sea-8479.herokuapp.com/users

有谁知道如何解决这个问题?

谢谢!

我将序言我要说的内容,我知道这个想法就像是一个小问题的大规模破坏,但是这个问题让我头撞墙几天,这是我找到修复它的唯一方法。 ..

尝试增加config/production.rb文件中的config.assets.version值。 它会使您的应用程序的所有资产到期,但它也会为该文件重新生成md5指纹,并应该帮助应用程序再次识别它。

例:

config.assets.version = '1.0'更改为config.assets.version = '1.1'

UPDATE

听起来Heroku不会为您预编译您的资产。 尝试运行: RAILS_ENV=production bundle exec rake assets:precompile然后重新部署。 如果您没有使用bundler ,则可以从上面的命令中删除bundle exec

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM