我正在为我的rails网站/博客处理我的生产服务器上的一些奇怪的不一致。
例如,在我的开发服务器上(刚刚运行Webrick),这是我的导航栏(这是正确的)并且100%显示时间:
将我的最新代码推送到生产服务器(passenger& nginx)之后,我的导航栏现在显示(注意缺少的博客链接),并显示大约40%的时间。我必须继续在我的浏览器上点击'刷新',直到博客链接显示:
这里给出了什么? RoR新手,但我相信问题在于我的Blog MVC。我一直在看nginx的日志文件,它们什么都没显示。
我还可以去哪里诊断这个问题?
以下是导航栏部分(_navigation.html.erb)
中的代码<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/">Home</a></li>
<li><%= link_to("How It Works", "/howto") %></li>
<li><%= link_to("FAQ", "/frequent") %></li>
<li><%= link_to("Blog", blogs_path) %></li>
<li><%= link_to("Contact Us", "/contact_forms/new") %></li>
</ul>
</div>
Tailing production.log也不是很有启发性。当“博客”链接加载时:
I, [2015-03-31T12:48:59.624208 #5061] INFO -- : Started GET "/" for X.X.X.X at 2015-03-31 12:48:59 -0400
I, [2015-03-31T12:48:59.625722 #5061] INFO -- : Processing by StaticPagesController#home as HTML
D, [2015-03-31T12:48:59.627223 #5061] DEBUG -- : Testimonial Load (0.4ms) SELECT "testimonials".* FROM "testimonials"
I, [2015-03-31T12:48:59.628629 #5061] INFO -- : Rendered layouts/_navigation.html.erb (0.3ms)
I, [2015-03-31T12:48:59.631063 #5061] INFO -- : Rendered layouts/_footer.html.erb (0.5ms)
I, [2015-03-31T12:48:59.631303 #5061] INFO -- : Rendered static_pages/home.html.erb within layouts/application (3.1ms)
I, [2015-03-31T12:48:59.632149 #5061] INFO -- : Completed 200 OK in 6ms (Views: 4.3ms | ActiveRecord: 0.4ms)
当Blog链接未加载production.log时,几乎没有任何内容写入。这就像服务器只注册部分页面加载一样。
我做了我的更改,重新启动了网络服务器(包括nginx和乘客),甚至重新启动了实际的服务器本身......仍然没有运气。
我对如何解决这个问题感到茫然,因为在开发过程中一切都很完美,而且我对RoR还是很新的。
答案 0 :(得分:0)
源代码非常简单,博客链接周围没有条件分支(if
)。
因此,唯一的解释是生产中运行的代码不是您正在开发的代码。
确保您的部署成功。检查您的服务器文件夹以确保代码在那里。还要确保重新启动了Web服务器,否则它可能仍在提供以前部署的代码。对于Passenger和Nginx,您需要(除非它已更改)touch
restart.txt
项目文件夹中的/tmp/restart.txt
文件,以便执行Passenger重启(没有明显重新启动整个Nginx进程)。