缓存应用程序问题 - 与capistrano一起部署

时间:2014-03-03 14:41:17

标签: ruby-on-rails capistrano

我第一次部署了我的应用。 Cap部署成功。但是我在特定代码段上收到错误。因此,在决定此错误之前,我决定删除此代码段并启动并运行网站。

我再次运行cap deploy但是我仍然在从源文件中删除的代码段上得到相同的错误(我通过拖尾production.log看到错误)。它不应该在那里。我在网上搜索,发现问题是该应用程序的缓存版本。我发现解决方法是删除/ shared文件夹中的cache-copy文件夹。

我重新启动了我的服务(nginx,unicorn)并再次打开网站,我在删除的代码段上仍然遇到同样的错误。

我检查了新的当前文件夹,缓存副本文件夹和最后一个版本文件夹,并且都没有产生错误的代码段。

这对我来说真的很奇怪。有什么线索发生了什么? 谢谢!

产生错误的代码段:

ActionView::Template::Error (undefined method `stripe' for #<Rails::Application::Configuration:0x00000002a85578>):
20:     <meta name="viewport" content="width=device-width">
21:     <%= javascript_include_tag 'application' %>
22:     <%= javascript_include_tag "https://js.stripe.com/v1/", type: 'text/javascript' %>
23:     <%= javascript_tag "Stripe.publishableKey = '#{Rails.configuration.stripe[:publishable_key]}';", type: 'text/javascript' %>
24:     <%= csrf_meta_tag %>
25:     <%= stylesheet_link_tag    "application", :media => "all" %>
26:     <script type="text/javascript" src="//use.typekit.net/xoh2pss.js"></script>

app / views / layouts / application.html.erb:23:在`_app_views_layouts_application_html_erb__486989174473553269_34754060'

第23行已删除,但仍显示为生成错误。

2 个答案:

答案 0 :(得分:0)

# config/initializers/stripe.rb
Stripe::API_KEY = 'asd8df9sadf766'


# application.html.erb
<%= javascript_tag do -%>
  Stripe.publishableKey = <%= Stripe::API_KEY %>;
<% end -%>

答案 1 :(得分:0)

您的资产是否已预编译,旧的all.js(或类似资产)是否在没有此更改的情况下重新部署?如果javascript部分调用的例程不存在可能产生错误 - 可能是您尝试调用的条带方法。如果他们是手动预编译的并且您进行了更改但没有重新编译它,那么重新部署只会将旧版本重新编译回来。

相关问题