2014-03-03 52 views
0

我已经部署我的应用程序的第一次。 Cap部署成功。不过,我在特定的代码段中遇到错误。所以我决定删除这段代码,并在解决这个错误之前先启动并运行网站。缓存应用程序问题 - 与capistrano部署

我再次运行cap部署,但我仍然从我从源文件中删除的代码段(我通过拖尾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> 

应用/视图/布局/ application.html.erb:23:在`_app_views_layouts_application_html_erb__486989174473553269_34754060'

线23除去,但其仍显示为产生错误。

+0

检查(nginx,unicorn).log文件以获取错误 – itsnikolay

+0

您可以显示该代码段吗?它可能与正在缓存的数据存储有关。 – Agis

+0

@itsnikolay在nginx和独角兽文件中没有错误。该错误是在production.log和它有关加载条纹环境变量,但我删除这只是为了让网站启动并运行。但是,我发现在删除的线条上产生了错误,而这种情况很奇怪,因为线条不在那里。 –

回答

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


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

谢谢。问题是即使我添加了这个应用程序的代码也不会被更新。我也可以在yml文件中添加我的Stripe env,或添加我的application.yml文件来阻止这个错误。 –

+0

您尝试重新启动服务器吗? – itsnikolay

+0

是的,我做到了。几次 –

0

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