我的资产管道中奇怪的Javascript缓存?

时间:2013-11-10 18:49:58

标签: javascript ruby-on-rails caching

缓存是我能想到的唯一解释。我正在使用Stripe,我有以下Javascript来设置它:

$(function() {
  console.log("Stripe: ");
  console.log($('meta[name="stripe-key"]').attr('content'));
  Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'));
  issueOrder.setupForm();
});

当我直接访问页面(即,将确切的URL放在地址栏中)我创建条带订单时,这非常有用。 console.log记录我正在测试的内容,条带令牌已设置,付款顺利完成。

但是,当我从网站上先前访问的页面访问该页面时(即,单击指向付款页面的链接),没有记录任何内容并且未设置条带标记,从而导致服务器端错误。

似乎javascript被调用一次,但是当呈现新页面时,它会以某种方式识别出它已被调用,因此它不再调用javascript。不幸的是,Stripe的可发布密钥没有被缓存,因此这会导致服务器端错误。我是否正确地思考这个问题,如果是这样,我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

这是因为Turbolinks - 只需覆盖链接的turbolinks,即可将您带到使用Stripe的页面。

<a href="url" data-no-turbolink>Link Text</a>

或Rails方式

<%= link_to 'Link Text', url_path, 'data-no-turbolink' => true %>