添加到购物车Javascript可在Localhost上运行,但不能在Heroku上运行

时间:2019-03-16 16:41:59

标签: javascript ruby-on-rails heroku

我遵循了this教程,为我的应用创建了购物车功能。

“添加到购物车”按钮应该使用AJAX使商品显示在购物车中(右上方)。

“添加到购物车”按钮的操作如下:

 <%= form_for @basket_item, remote: true do |f| %>
    <div class="input-group">
      <%= f.hidden_field :quantity, value: 1 %>
      <div class="input-group-btn">
        <%= f.hidden_field :variation_id, value: variation.id %>
        <%= f.submit "Add to Cart", class: "btn btn-primary" %>
      </div>
    </div>
  <% end %>

哪个触发了此控制器逻辑:

  def create
    @basket = current_basket
    @basket_item = @basket.basket_items.new(basket_item_params)
    if @basket.save
      respond_to do |format|
        format.js
        format.html
      end
    else
      alert "Something went wrong!"
    end
    session[:basket_id] = @basket.id
  end

有了这个create.js

<% if @basket.errors.any? || @basket_item.errors.any? %>
  alert("not valid.")
<% else %>
  $("#cart-text").html("<%= escape_javascript(render 'layouts/cart_text') %>")
<% end %>

要在我的应用程序布局上更新#cart-text

<a><div id="cart-text"><%= render 'layouts/cart_text' %></div></a>

它在localhost上正常工作,但是当我部署到Heroku时,单击“添加到购物车”按钮时,控制台上出现500 (Internal Server Error)错误。 (您可以在https://www.thestaysanemom.com/goodies/1上看到错误的寿命)。

我进行了查找,诸如this之类的帖子建议对资产进行预编译,并在config.assets.compile = true上添加行production.rb,我都尝试了两次,但都没有效果。

诸如this之类的帖子建议将config.assets.debug = true添加到production.rb,由于无法找到资产文件夹中清晰可见的图像,这使我的整个应用崩溃(500页)。

关于如何解决此问题的任何想法?

0 个答案:

没有答案